2017-10-19 173 views
0

我试图使用Microsoft.TeamFoundation.VersionControl.Client中的“PendRename”方法来编程重命名分支。以编程方式重命名TFS分支c#(TFS2017)

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

所以,你能帮助理解为什么重命名分支不工作?

谢谢

回答

0

谢谢

的问题是,有一些正在生成工作区的目录不同的过程,然后,他无法将其删除。

因此,我解决了这个问题,请执行以下步骤: 1.为我的应用预订工作区本地位置 2.查看此工作空间是否已映射。如果是的话,我将其删除 3.创建一个工作区,以在路径上一个文件夹,并创建地图 4.获得最新 5.重命名

谢谢安迪 - MSFT的支持。

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); 
     } 
    } 
} 

然后,你需要签入,当然它。使用“workspace.GetPendingChanges()”和“workspace.CheckIn()”方法来完成它。

enter image description here