6

Export() メンバー関数を使用して、機能している特定のリビジョンのファイルを取得していますが、何らかの理由で機能していない場合があります。変更されたすべてのパスで機​​能しているように見えますが、そのリビジョンで削除され、時々追加されたファイルでは、使用された URL にファイルがないという例外が発生します。これらのパスで TurtoiseSVN の「リビジョンをコピー...」を使用すると、正常に動作し、SharpSVN で何か不足していないかどうか疑問に思っています。変更されたすべてのファイルのリビジョンで完全なバージョンが必要です。私のコードの一般的な考え方は次のとおりです。

if (logentry.ChangedPaths != null)
{
     foreach (SvnChangeItem svnChangeItem in logentry.ChangedPaths)
     {
         SvnExportArgs ex = new SvnExportArgs();
         ex.Revision = revisionNum;
         client.Export(SvnTarget.FromUri(new Uri(pathInsideRepo)), exportFile, ex);
     }
}

ヘルプや提案をいただければ幸いです。

4

2 に答える 2

2

SvnExportArgs を使用した uri の代わりに SvnUriTarget を使用すると、正しい情報を取得できることがわかりました。なぜそれらが異なるのかはよくわかりませんが、機能します。

上記のエクスポートの代わりに、次を使用しました。

client.Export(new SvnUriTarget(new Uri(pathInsideRepo), revisionNumber), exportFile, ex);

私が見つけた答えはリンクテキストにありました

于 2010-06-23T18:29:31.447 に答える
2

コマンド ライン クライアントの動作は同じです。何が起こっているかというと、ファイルを指す URL が行き来する可能性があるということです。これは、古い URL を使用するように指定しない限り、現在削除されているファイルを指す URL は無効であることを意味します。これをペグ修正と呼びます。

svnbookでペグのリビジョンを読んでください。

于 2010-06-23T23:14:52.890 に答える