Я пытаюсь программно получить список всех ветвей в TFS для Visual Studio 2013. После некоторых исследований я нашел этот блог, который подробно описывает, как получить ветки:Получите все TFS-ветви программно в C '#
Displaying all branch hierarchies in TFS 2010
Я изменил код, чтобы вместо этого хранить все в списке.
private void Setup()
{
string serverName = "serverName"; //in the code this is set to the actual server name
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(serverName));
VersionControlServer vcs = tfs.GetService<VersionControlServer>();
var bos = vcs.QueryRootBranchObjects(RecursionType.OneLevel);
Array.ForEach(bos, (bo) => DisplayAllBranches(bo, vcs));
}
private void DisplayAllBranches(BranchObject bo, VersionControlServer vcs)
{
_listOfBranches.Add(bo.Properties.RootItem.Item);
var childBos = vcs.QueryBranchObjects(bo.Properties.RootItem, RecursionType.OneLevel);
foreach (var child in childBos)
{
if (child.Properties.RootItem.Item == bo.Properties.RootItem.Item)
continue;
DisplayAllBranches(child, vcs);
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что BranchObjects [] bos всегда пуст. Есть ли что-то, что мне не хватает, или есть лучший способ получить список всех филиалов?
Спасибо за отзыв. Проблема была не в имени сервера. Проблема заключалась в том, что первый уровень - это папки, содержащие ветви. Поняв это, я смог решить проблему. Я опубликовал решение. – TheMoonbeam