0

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を使用して削除されたファイルの履歴を取得する他の方法はありますか

4

2 に答える 2

1

この質問は1年以上前に尋ねられましたが、それでも他の人の助けになることができればそれに答えることを考えました。

削除されたファイルの履歴を取得しようとしませんでしたが、-を使用して削除されたブランチの履歴を取得できました

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

これは、発信している呼び出しに似ていますが、、、およびに適切な値を指定する必要が pegRevisionありstartRevisionますendRevision。を使用するとUNDEFINED正しい結果が得られない場合があります。代わりに、ファイルが削除されたリビジョンをpegRevisionとして使用し、startRevisionを0として使用すると、機能するはずです。

于 2013-10-02T12:43:31.897 に答える
0

ファイルが存在するリビジョンをペグリビジョンとして指定する必要があります。明らかにそれはdeletedRevision-1です。そして多分(ここではわかりませんが、試してみてください)ファイルは開始リビジョンと終了リビジョンの両方に存在する必要があります。

于 2012-05-12T22:17:04.850 に答える