问题背景:
在我的TF服务器中,我有两个文件夹,一个是名为'HelloWorldDev'的文件夹中的简单'HelloWorld.sln',另一个是名为'HelloWorldQA'的文件夹中的'HelloWorld.sln'。每个文件夹都包含各自的.cs文件等。
我想检查HelloWorld QA文件夹中的文件,替换 - 或更新它 - 使用具有相同文件名的HelloWorldDev文件夹中的版本,然后将此文件检入带有相关更改的HelloWorldQA文件夹。
问题:
我是TFS API的新手,所以如果我想问的是正确的方法,或者如果它可能的话,我不是100%。有人能给我一个实现这个目标的例子吗?
到目前为止代码:
string fileName = @"C:\Users\Me\Documents\TfsServer\HelloWorldQA\IHelloWorld.cs";
string fileNameQA = @"C:\Users\Me\Documents\TfsServer\HelloWorld\IHelloWorld.cs";
string uri = @"https://tfsServer.visualstudio.com/";
var workspaceInfo = Workstation.Current.GetLocalWorkspaceInfo(fileName);
var server = new TfsTeamProjectCollection(workspaceInfo.ServerUri);
var workspace = workspaceInfo.GetWorkspace(server);
workspace.PendEdit(fileName);
FileInfo fi = new FileInfo(fileName);
var workspaceInfoQA = Workstation.Current.GetLocalWorkspaceInfo(fileNameQA);
var serverQA = new TfsTeamProjectCollection(workspaceInfo.ServerUri);
var workspaceQA = workspaceInfo.GetWorkspace(serverQA);
workspace.PendEdit(fileNameQA);
FileInfo fiQA = new FileInfo(fileNameQA);
答案 0 :(得分:1)
首先,您可以简单地将两个文件夹映射到同一工作区中,而不是使用2个工作区。
然后你正在寻找一个merge操作:
var sourcePath = workspace.GetServerItemForLocalItem(fileName);
var targetPath = workspace.GetServerItemForLocalItem(fileNameQA);
var getStatus = workspace.Merge(sourcePath, targetPath, null, null);
if (getStatus.NumUpdated > 0)
{
//OK
}