我想在服务器上将tfs文件从一个位置移动到另一个位置。
过程将是:
给定服务器和项目名称 - 递归项目文件夹的子文件夹并将文件复制到另一个文件夹位置。
我看过许多不同的例子,有些使用tfscollection对象,有些工作区等等。对于tfs api来说,我有点困惑。
有人可以为此提供一些代码示例(我正在使用vs 2010)吗?
我到目前为止的代码是:
NetworkCredential tfsCredential = new NetworkCredential("username", "password");
tfsCredential.Domain = "dsi";
TfsConfigurationServer server = new TfsConfigurationServer(new Uri("http://tfs.domain.com:8080/tfs"), tfsCredential);
server.Authenticate();
VersionControlServer vcserver = server.GetService(typeof(VersionControlServer)) as VersionControlServer;
答案 0 :(得分:1)
您需要将Workspace类用于此类工作。如果您有现有工作区,则可以从已有的VersionControlServer实例获取Workspace实例。如果没有,则需要创建一个新的临时工作空间,然后使用Workspace类的一个Get()方法下载需要对此临时工作空间进行更改所需的文件。
我不确定您是要移动还是复制文件。要移动文件,请使用Workspace类的PendRename()方法之一。我没有看到这个方法的递归标志,所以你可能不得不自己做递归,而PendRename()则要移动你想要移动的文件。这会将文件添加到挂起的更改列表中。
要复制文件,您需要先在工作区中制作文件的本地副本,然后使用其中一种PendAdd()方法将新文件添加到工作区中的待处理更改列表中。
最后,您可以通过GetPendingChanges()获取挂起的更改列表,然后使用Checkin()执行签入。
所有这些方法都属于Workspace类。