2

私は、1つの要素が機能しているかなり大きなソリューションの棚を持っています。私のワークスペースバージョンではそうではありませんが、シェルフセットで機能していない他の要素が私のワークスペースバージョンで機能しています。そのため、両方のバージョンをマージするのは面倒で時間がかかります。

シェルフセットをワークスペースソリューションと比較して、互いに異なるすべてのファイルを返す簡単な方法はありますか?1つずつ比較することは可能ですが、どこでエラーが発生したかはわかりません。これを見つけるには、ほとんどがまったく同じである膨大な数のファイルを比較する必要があります。

4

2 に答える 2

1

シェルブセットを作成すると、TFS はファイルのハッシュ値を格納します。サーバー上の元のアイテムの値である HashValue と、シェルフセット内のアイテムの実際の値である UploadHashValue の 2 つの値があります。

その後、新しいシェルブセットを作成して古いものと比較できるはずです。

var shelvesetOld = vcs.QueryShelvesets("shelveset_old", null).FirstOrDefault();
var shelvesetOldChanges = vcs.QueryShelvedChanges(shelvesetOld)[0].PendingChanges;

var shelvesetNew = vcs.QueryShelvesets("shelveset_new", null).FirstOrDefault();
var shelvesetNewChanges = vcs.QueryShelvedChanges(shelvesetNew)[0].PendingChanges;

var differences = new List<PendingChange>();
foreach (var oldChange in shelvesetOldChanges) {
    var shelvesetNewChange = shelvesetNewChanges.FirstOrDefault(shelvesetChangeSearch => shelvesetChangeSearch.ServerItem.Equals(oldChange.ServerItem));
    if (shelvesetNewChange == null) {
        differences.Add(oldChange);
        continue;
    }

    if (!shelvesetNewChange.UploadHashValue.SequenceEqual(oldChange.UploadHashValue)) {
        differences.Add(oldChange);
    }
}
于 2013-02-22T10:11:32.920 に答える
1

TFS Power Tools ( TFS Power Toolstfpt unshelve - 古いバージョンの TFS はそのページの別のリンクにあることに注意してください) には、探していることを実行できるunshelve コマンド ( ) があります。自動マージできない場合は、マージ ツールが表示されます。

于 2013-02-21T21:30:53.033 に答える