【问题标题】:TFS - Make a child branch the main branch and abandon original parentTFS - 使子分支成为主分支并放弃原来的父分支
【发布时间】:2017-01-11 18:35:39
【问题描述】:

不知何故,我的 Visual Studio 项目变得非常混乱。源代码很好,但有些配置文件搞砸了。经过数小时的努力,我发现了一个较早的变更集(变更集 20),尽管没有最新的变更(我现在已经更新到变更集 25),但它编译并运行良好。

然后我执行了以下步骤:

  1. 我将变更集 20 的副本检索到新的临时工作区中。
  2. 我使用 WinMerge 将最新的源代码更改手动合并到我的临时工作区中的变更集 20 代码中。
  3. 我在 TFS 中将我的主分支(称为 MainBranch)分支到了一个名为 TempBranch 的新分支。
  4. 我手动将合并的文件(从第 2 步开始)从临时工作区复制到 TempBranch 的主工作区。
  5. 我将合并后的代码签入到 TempBranch。

我的层次结构现在看起来像这样:

所以,现在,TempBranch 拥有所有最新的“好”代码,并且没有任何损坏的配置文件。 MainBranch 有错误的配置文件。

既然 TempBranch 正是我想要的样子,也是我所有进一步开发的基础,我现在应该怎么做,以便 MainBranch 与 TempBranch 基本相同?

我担心如果我尝试合并分支,它会尝试将 MainBranch 中的错误配置文件与 TempBranch 中的好配置文件合并。我想确保对于两个分支中的所有差异,TempBranch 版本“获胜”。

【问题讨论】:

    标签: visual-studio tfs merge


    【解决方案1】:
    1. 您可以尝试将从TempBranch合并到MainBranch,如果有冲突则取源分支。

    2. 如果历史记录在 MainBranch 中不重要,您可以重新设置 TempBranch,然后选择 No parent。那么 TempBranch 和 MainBranch 之间没有层次结构,您可以在 TempBranch 上工作。

    【讨论】:

    • 如果我做#1,什么构成冲突?如果在每个分支的特定文件中进行了不同的更改,我不希望它合并这两个文件,即使修改了不同的行。我希望 TempBranch 版本成为无论如何都可以使用的版本。
    • 选项2怎么样?您可以将 TempBranch 重新设置为 No parent,然后仅在 TempBranch 中工作。
    • 谢谢。我做了选项 2。我将 TempBranch 重新设置为 No Parent,然后将 MainBranch 重命名为“OldAbandonedBranch”,然后将 TempBranch 重命名为“MainBranch”。
    猜你喜欢
    • 2013-11-14
    • 2012-11-16
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多