シェルブセットを作成すると、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);
}
}