我正在尝试使用Microsoft.TeamFoundation.VersionControl.Client中的“PendRename”方法以编程方式重命名分支。
移动工作,因此,如果我使用它将所有内容移动到新位置,它可以工作,但我需要的是重命名分支。 可以通过命令行“tfs.exe rename”来执行此操作(如果我为同一服务器URL映射了多个工作空间,即使这给我错误。在工作区中找不到...,或者你做了没有权限访问它。)
那么,请你帮忙理解为什么重命名分支不起作用?
谢谢,
答案 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;这样做的方法。
答案 1 :(得分:0)
谢谢,
问题是,有不同的进程正在为目录生成工作空间,然后,他无法将其删除。
所以,我在这个步骤中解决了这个问题: 1.为我的应用程序保留工作区本地位置 2.查看是否已映射此工作空间。如果是,我将其删除 3.在路径中的上一个文件夹中创建工作空间并创建地图 得到最新的 5.重命名
感谢Andy-MSFT的支持。