【问题标题】:Get a list of branches of a TFS workspace programmatically以编程方式获取 TFS 工作区的分支列表
【发布时间】:2021-11-21 09:08:00
【问题描述】:

我想检索本地映射的 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);
 }

你知道如何检查哪些分支映射到本地工作区吗?特定工作区类的实例可用。

【问题讨论】:

    标签: c# tfs tfvc


    【解决方案1】:

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

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

    如果您没有tf.exe,请参阅此页面How to get tf.exe (TFS command line client)?

    【讨论】:

    • 该功能嵌入在应用程序中。所以另一个 .exe 在这里不会有用。
    【解决方案2】:

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

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

    或者您可以use the Workstation class 查询您机器上的本地工作空间。

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

    【讨论】:

      猜你喜欢
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 2015-04-29
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多