【问题标题】:Branch TFS Directory and Check-in分支 TFS 目录和签入
【发布时间】:2018-08-18 07:07:09
【问题描述】:

整天都在寻找解决方案,但几乎没有运气。我在 C# 中有这个 Windows 窗体应用程序 - 我的目标是在我的 TFS 存储库中分支一个目录,如果可能的话,在新创建的分支中更改文件名/文件夹名称,并使用更新的文件夹名称/文件名将代码检查回 TFS结构。

是否有我没有看到的包或类允许我创建和操作分支,以及从 c# winforms 应用程序签入代码?如果是这样,一个例子将不胜感激。

【问题讨论】:

标签: c# .net winforms tfs


【解决方案1】:

如果您使用Client Object Model Reference 以编程方式管理版本控制。

要创建分支,需要使用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","domain\userName");
                Changeset changeset = vcServer.GetChangeset(changesetId);

                changeset.Update();

    }

    }
}

你也可以看看这个类似的问题:How to create a new source code branch using TFS API?

重命名文件或目录可以使用Workspace.PendRename Method,示例代码请参考:How do I move a TFS file with c# API?

【讨论】:

  • 非常感谢您的详尽回答,这正是我所需要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-07
  • 2016-01-23
  • 2016-08-10
  • 2013-06-01
  • 2019-03-29
  • 1970-01-01
  • 2014-07-30
相关资源
最近更新 更多