0

SharpSvnを使用して、ファイルの2つのリビジョンの内容を読み取ろうとしています。次のコードを実行すると、fileVersionsコレクションには1つのアイテムしか含まれていません。

var svnClient = new SvnClient();
var revisionInfo = new SvnFileVersionsArgs
    {
        Start = 80092,
        End = 80093
    };

Collection<SvnFileVersionEventArgs> fileVersions;
svnClient.GetFileVersions(
    new SvnUriTarget("https://DbDiff.svn.codeplex.com/svn/DbDiffCommon/DataAccess/SqlCommand11.xml"), 
    revisionInfo,
    out fileVersions);

ただし、2つの項目が含まれると思います。TortoiseSVNを使用すると、リビジョン80088でファイルが変更されたことがわかります。したがって、 Start = 80092..を使用するとこのバージョンを取得できると思います。

TortoiseSVNログメッセージ

使用Start = 80091しても役に立ちません。

4

1 に答える 1

1

問題はコードではなく、codeplexで使用されるSvnBridgeソフトウェアにあります。(データをTFSに保存し、実際のSubversionバックエンドを使用する代わりにブリッジ経由でアクセスを提供します)。

ブリッジソフトウェアはこのAPIを適切に実装していません。(私は何年も前に問題を追加しましたが、私が知る限り、それは修正されていませんでした)。

Subversion自体は、このapiを「svnblame」(/ praise / annotate)にのみ使用するため、SvnBridge開発者はこれを修正するのに十分気にしなかったと思います。

AnkhSVNでは、1つのファイルを受信しただけの場合を検出し、SvnClient.Write()を使用してファイルを低速で取得します:(

于 2012-07-30T12:54:41.747 に答える