以编程方式重命名TFS分支c#(TFS2017)

时间:2017-10-19 15:10:58

标签: c# tfs azure-devops tfs2017

我正在尝试使用Microsoft.TeamFoundation.VersionControl.Client中的“PendRename”方法以编程方式重命名分支。

移动工作,因此,如果我使用它将所有内容移动到新位置,它可以工作,但我需要的是重命名分支。 可以通过命令行“tfs.exe rename”来执行此操作(如果我为同一服务器URL映射了多个工作空间,即使这给我错误。在工作区中找不到...,或者你做了没有权限访问它。)

那么,请你帮忙理解为什么重命名分支不起作用?

谢谢,

2 个答案:

答案 0 :(得分:0)

Rename or move files and folders in TFVC,您必须是团队项目的贡献者之一。请参阅Team Foundation Server default groups, permissions, and roles

我测试了它并使用" PendRename"正确地重命名了分支。方法

以下代码示例供您参考:

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;

namespace RenameBranch
{
    class Program
    {
        static void Main(string[] args)
        {
            string oldPath = @"E:\andy\0418Scrum\web0418-0823";
            string newPath = @"E:\andy\0418Scrum\web0418-1020";
            string collection = @"http://server:8080/tfs/DefaultCollection";
            var tfsServer = new Uri(collection);
            var tpc = new TfsTeamProjectCollection(tfsServer);
            var vcs = tpc.GetService<VersionControlServer>();

            Workspace workspace = vcs.GetWorkspace("YourWorkspaceName", vcs.AuthorizedUser);

            workspace.PendRename(oldPath, newPath);
        }
    }
}

然后你需要CheckIn它。使用&#34; workspace.GetPendingChanges()&#34;和&#34; workspace.CheckIn()&#34;这样做的方法。

enter image description here

答案 1 :(得分:0)

谢谢,

问题是,有不同的进程正在为目录生成工作空间,然后,他无法将其删除。

所以,我在这个步骤中解决了这个问题: 1.为我的应用程序保留工作区本地位置 2.查看是否已映射此工作空间。如果是,我将其删除 3.在路径中的上一个文件夹中创建工作空间并创建地图 得到最新的 5.重命名

感谢Andy-MSFT的支持。

相关问题