2012-03-08 98 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。也許(我不確定這裏,只是試試)該文件應該存在於開始和結束脩訂。

相關問題