1

この記事に従って、チェンジセットからブランチ履歴を抽出しようとしています。ただし、チェンジセットにはIsBranchというプロパティがあることに気付きました。これは、チェンジセットがブランチであるかどうかを確認するための記事で説明されている方法ではありません。

次のチェックの違いは何ですか。

VersionControlServer vcs = tpc.GetService<VersionControlServer>();
Changeset cs = vcs.GetChangeset(changeset.ChangesetId);

Console.WriteLine("Changeset: {0}", cs.ChangesetId);

// Get History
foreach (var change in cs.Changes)
{
     if (change.Item.IsBranch)
     {
     }

VersionControlServer vcs = tpc.GetService<VersionControlServer>();
Changeset cs = vcs.GetChangeset(changeset.ChangesetId);

Console.WriteLine("Changeset: {0}", cs.ChangesetId);

// Get History
foreach (var change in cs.Changes)
{
     if ((change.ChangeType & ChangeType.Branch) == ChangeType.Branch)                    
     {
     }
4

2 に答える 2

3

Item クラスの IsBranch プロパティは 2010 の新機能であるため、2 番目の方法は以前のバージョンの TFS で行っていた方法です。

2010年クラスメンバー

2008年クラスメンバー

于 2011-02-18T15:56:14.153 に答える
2

TFS にプロパティの値を設定させるには、を呼び出すときにフラグを渡して、アイテムのブランチ情報がitem.IsBranch必要であることを に伝える必要があります。VersionControlServerGetItemsOptions.IncludeBranchInfoGetItem()

例:

using (var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(uri))
{
    tfs.EnsureAuthenticated();
    var vcs = tfs.GetService<VersionControlServer>();
    var item = vcs.GetItem("$/Proj/Main/", VersionSpec.Latest, DeletedState.Any, GetItemsOptions.IncludeBranchInfo);
}
于 2012-04-23T16:39:13.890 に答える