首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SVNKit从SVN获取删除文件的历史记录

使用SVNKit从SVN获取删除文件的历史记录
EN

Stack Overflow用户
提问于 2012-03-08 20:26:03
回答 2查看 1.1K关注 0票数 0

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

以下是我为实现这一目标所做的工作。

代码语言:javascript
复制
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版本。

当执行这段代码时,我总是得到以下异常:

代码语言:javascript
复制
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获取已删除文件的历史记录

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-02 20:43:32

虽然这个问题已经被问了一年多了,但如果可以得到别人的帮助,我仍然想回答这个问题。

我没有尝试检索已删除文件的历史记录,但我可以使用以下命令检索已删除分支的历史记录-

代码语言:javascript
复制
SVNLogClient.doLog(SVNURL.parseURIEncoded(path), new String[] { "" }, pegRevision, SVNRevision.create(0),pegRevision, stopOnCopy, discoverChangedPaths, logsLimit, logHandler);

这与您正在进行的调用类似,但您需要为pegRevisionstartRevisionendRevision提供正确的值。使用UNDEFINED可能不会给出正确的结果,而是使用文件被删除的版本作为pegRevision,使用startRevision作为0,它应该可以工作。

票数 1
EN

Stack Overflow用户

发布于 2012-05-13 06:17:05

您应该将文件所在的版本指定为peg版本。显然,它被删除了Obviously 1。也许(我不确定,试一试)这个文件应该同时存在于开始和结束版本中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9617657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档