繁体   English   中英

以编程方式获取 TFS 工作区的分支列表

[英]Get a list of branches of a TFS workspace programmatically

我想检索本地映射的 TFS 工作区的所有分支的列表。 我已经有了一个解决方案,我可以在其中检索 VersionControlServer-Object 的所有分支,但这不是我想要的。 它应该是一个特定于我的工作区的列表。

 var branchObjects = m_VersionControlServer.QueryRootBranchObjects(RecursionType.Full);
 List<string> branches = new List<string>();

 foreach (var branch in branchObjects)
 {
     var branchName = branch.Properties.RootItem.Item;
     branches.Add(branchName);
 }

您是否有任何想法如何检查映射到本地工作区的哪些分支? 特定工作空间类的实例可用。

您可以使用 TFS tf命令行工具实现此目的

tf workspaces /owner:* /computer:* /collection:https://tfs.yourdomain.com/DefaultCollection /format:xml

如果您没有tf.exe ,请参阅此页面如何获取 tf.exe(TFS 命令行客户端)?

假设您知道工作区的本地路径,您可以使用:

var workspace = versionControlServer.TryGetWorkspace(...path...)

或者您可以使用Workstation class查询您机器上的本地工作区。

然后从工作区中,您可以从QueryWorkspaceInfo方法和映射WorkspaceInfo.Mappings属性中获取工作区。 从那里您可以检查您的分支根(您已经弄清楚了)是否映射到服务器上的任何工作区中。 如果您希望能够查找服务器路径,则需要调用WorkspacnInfo.GetWorkspace方法并从那里使用Workspace.Folders属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM