整天都在寻找解决方案,几乎没有运气。我在 C# 中拥有此 Windows 窗体应用程序 - 我的目标是对 TFS 存储库中的目录进行分支,如果可能,在新创建的分支中更改文件名/文件夹名称,并使用更新的文件夹名称/文件名结构将代码签回 TFS。
是否有我没有看到的包或类允许我创建和操作分支,以及从 c# winforms 应用程序签入代码?如果是这样,一个例子将不胜感激。
如果使用客户端对象模型参考以编程方式管理版本控制。
要创建分支,您需要在 Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer 类中使用 "CreateBranch((" 方法。
在服务器上创建一个分支,并在不下载的情况下将其签入 客户端的分支。
示例供您参考:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.TeamFoundation.Client;
using System.Net;
namespace Model.versionControl
{
public static class CreateBranch
{
public static void CreateBranchWithComment()
{
NetworkCredential cre = new NetworkCredential("userName", "password", "domain");
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("http://TFSServerName:8080/tfs/CollectionName"), cre);
VersionControlServer vcServer = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
int changesetId = vcServer.CreateBranch(@"$/SourceControl/WebSites", "$/SourceControl/WebSites_Branch", VersionSpec.Latest);
new WorkspaceVersionSpec("machineName","domainuserName");
Changeset changeset = vcServer.GetChangeset(changesetId);
changeset.Update();
}
}
}
您还可以查看这个类似的问题:如何使用 TFS API 创建新的源代码分支?
至于重命名文件或目录,您可以使用Workspace.PendRename Method
,示例代码请参考:如何使用 c# API 移动 TFS 文件?