1

SVNキットを使用してJavaコードのブランチで実行されたすべてのアクティビティをフェッチしようとしています。

SVNRepository repository = SVNRepositoryFactory.create(svnURL);
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("UserName", "password");
repository.setAuthenticationManager(authManager);
Collection logEntries = repository.log(new String[] { "" }, null, 0, -1, true, true);

上記のコードはチャームのように機能し、svnURL属性で示されるブランチ上のすべてのアクティビティを取得しています。

しかし、実際の問題は、何らかのアクティビティの後でブランチ自体の名前が変更されたときに発生します。例えば

Initial Branch => https://domain/repository/branches/OriginalName
New
Branch =>  https://domain/repository/branches/NewName

さて、名前の変更が行われた後、古い名前を使用して上記のコードを実行すると、ファイルが見つからないというpropfindエラーが発生します。しかし、新しいブランチ名で実行すると、すべてがファイルとして機能し、名前が変更されるまで、そのブランチのアクティビティログも提供されます。OldBranch名で発生したアクティビティは返されません。

SVNKitに期待どおりの出力を取得する方法はありますか?

4

1 に答える 1

2

パラメータstrictNodeoflogtrueに設定します

strictNodeがtrueの場合、各パスのリビジョンログを収集するときに、コピー履歴はトラバースされません(存在する場合)。

これは、ほとんどのGUIでのコピー/名前変更の停止と同等のようです。falseに設定すると、改訂履歴全体を取得する必要があります。

注: svn renameは単なるコピーと削除です。ファイル/フォルダの新しいコピーを作成し、古いものを削除します。

于 2011-12-21T10:45:01.680 に答える