TFS 2010 программно определяющий элемент ветви - PullRequest
5 голосов
/ 08 августа 2011

Как программно определить, к какой ветви принадлежит этот файл? Я потратил 3 часа, пытаясь понять это безрезультатно. Я нашел эту тему, но это не то, что я хочу: Как программно получить информацию о ветках в TFS?

Ответы [ 2 ]

4 голосов
/ 27 января 2012

У меня была очень похожая проблема. Я нашел решение, вот код:

...
// get all branches
VersionControlServer vcs = tfs.GetService(typeof(VersionControlServer));
BranchObject[] allBranches = vcs.QueryRootBranchObjects(RecursionType.Full);

string myItem = "$/My Project/some Path including the branch/myFile.txt";

foreach(BranchObject branch in allBranches)
{
  if(myItem.Contains(branch.Properties.RootItem.Item))
  {
    // branch is the branch to which the item belongs! :)
  }
}
...

Я надеюсь, что это поможет кому-то с этой проблемой, я думаю, что операционная уже решила ее (прошло много времени с тех пор, как он задал вопрос).

2 голосов
/ 24 октября 2011

Единственный способ получить информацию о ветвях для определенного файла - использовать VersionControlServer.QueryBranchObjects для запроса каждой возможной ветки в структуре папок вплоть до корня.

Однако вы можете сделать несколько предположений и сделать это достаточно эффективно - поскольку ветвь не может быть в другой ветке в tfs 2010. Найдите общее подмножество путей всех проверяемых файлов и протестируйте их, если их нет.тогда они не принадлежат одной ветви.

...