我正在尝试访问使用SVNKit删除的文件的修订历史记录。
以下是我正在做的事情。
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获取已删除文件的历史记录
答案 0 :(得分:1)
虽然这个问题已经被问了一年多,但是如果可能是其他人的帮助,仍然会想到回答它。
我没有尝试检索已删除文件的历史记录,但我可以使用 -
检索已删除分支的历史记录SVNLogClient.doLog(SVNURL.parseURIEncoded(path), new String[] { "" }, pegRevision, SVNRevision.create(0),pegRevision, stopOnCopy, discoverChangedPaths, logsLimit, logHandler);
这与您正在进行的通话类似,但您需要为pegRevision
,startRevision
和endRevision
提供正确的值。使用UNDEFINED
可能无法给出正确的结果,而是将删除了文件的修订版本用作pegRevision和startRevision为0,它应该可以正常工作。
答案 1 :(得分:0)
您应该指定一个修订,其中文件作为peg修订版存在。显然它是deletedRevision-1。也许(我不确定在这里,只是尝试)文件应该存在于开始和结束修订版中。