TFS API Changeset ветка - PullRequest
       4

TFS API Changeset ветка

1 голос
/ 18 февраля 2011

Я пытаюсь извлечь историю ветвления из набора изменений, следуя этой статье. Однако я заметил, что у Changeset есть свойство 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)                    
     {
     }

Ответы [ 2 ]

3 голосов
/ 18 февраля 2011

Свойство IsBranch класса Item появилось в 2010 году, поэтому вторым способом является способ, которым вы делали это в предыдущих версиях TFS.

Члены класса 2010

2008 Учащиеся

2 голосов
/ 23 апреля 2012

Чтобы TFS установил значение для свойства item.IsBranch, вам нужно сообщить VersionControlServer, что вы хотите получить информацию о ветви элемента, передав флаг GetItemsOptions.IncludeBranchInfo при вызове GetItem().

Пример:

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);
}
...