2012-03-08 69 views
0

我正在尝试使用SVNKit访问已被删除的文件的修订历史记录。使用SVNKit从SVN获取已删除文件的历史记录

以下是我正在做的,以实现这一目标。

SVNClientManager manager = SVNClientManager.newInstance(); 
SVNLogClient logClient = manager.getLogClient(); 
logClient.doLog(svnURL, new String[] { fileName }, SVNRevision.create(deletedRevision), 
              SVNRevision.UNDEFINED, SVNRevision.UNDEFINED, false, false, true, -1, null, 
              new ISVNLogEntryHandler() { 
               public void handleLogEntry(SVNLogEntry logEntry) throws SVNException { 
                log.debug(" ==== " + logEntry.getChangedPaths() + " === " 
                  + logEntry.getRevision()); 
              } 
             }); 

这里,deletedRevision => SVN修订版中的文件被删除。

当执行该代码上获得以下情况例外我保持:

org.tmatesoft.svn.core.SVNException: svn: '<FilePath>' path not found: 404 Not Found (https://<RepositoryURL> 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64) 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.logImpl(DAVRepository.java:976) 
     at org.tmatesoft.svn.core.io.SVNRepository.log(SVNRepository.java:1034) 
     at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:1024) 
     at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:891) 
     at com.blueoptima.connectors.scr.SVN.getWorkingFileList(SVN.java:711) 
     ... 4 more 

难道我做错了这里的东西吗?有没有其他方法可以使用SVNKit获取已删除文件的历史记录

回答

1

尽管这个问题已经被问了一年多,但如果可以得到其他人的帮助,仍然会想到回答它。

我没有尝试检索出被删除文件的历史,但我可以用检索删除分支的历史 -

SVNLogClient.doLog(SVNURL.parseURIEncoded(path), new String[] { "" }, pegRevision, SVNRevision.create(0),pegRevision, stopOnCopy, discoverChangedPaths, logsLimit, logHandler); 

这与你正在进行的呼叫,但你需要提供正确的值pegRevisionstartRevisionendRevisionUNDEFINED的使用可能不会给出正确的结果,而是使用修订版本将文件作为pegRevision和startRevision删除为0,它应该可以工作。

0

您应该指定一个修订版,其中该文件作为peg修订版存在。显然这是删除修复-1。也许(我不确定这里,只是试试)该文件应该存在于开始和结束修订。

相关问题