【问题标题】:Merging unlinked files into source将未链接的文件合并到源中
【发布时间】:2017-02-13 15:57:03
【问题描述】:

我有一个源代码控制文件夹的副本,其中包含许多当前未链接到我们的源代码控制的更改。

自从复制后,这个文件夹的两个副本的内容都被大量编辑过,我必须以某种方式合并它们。

如何将未链接到源代码管理的副本合并到已链接的副本?

【问题讨论】:

    标签: merge mercurial tortoisehg


    【解决方案1】:

    程序很简单:

    1. 确保您的存储库中有未修改的存储库状态。提交您的修改,如果有的话。

    2. 在存储库中:更新到要合并未版本化文件的提交的前任

    3. 现在将未版本控制目录的所有文件复制到存储库的工作目录中。添加所需的未跟踪文件并提交更改。这将在存储库中产生一个新的头,您将至少有两个:您以前跟踪的一个和以前未跟踪的一个

    4. 现在合并两个头并以适合您的方式解决任何冲突。

    如果事情的发展与您的出价不同,保留一份事情的副本(原始存储库和未版本化的目录)总是一个好主意......重新开始比撤消提交甚至不需要的合并更容易。

    【讨论】:

      【解决方案2】:

      一些选项:

      1. 复制 versioned 文件夹中的 unversioned 文件,然后提交。不太明智,因为合并的内容将不受您的控制。当您看到问题所在时,再修复就为时已晚。

        • 初始化 unversioned 文件夹中的 mercurial 存储库,添加文件,提交
        • Synchronize 部分添加您的主存储库路径,可以是您的本地存储库。
        • 单击Options 按钮,启用Force push or pull 复选框。 从您的主存储库修订。
        • 更新到您要合并的修订。
        • 与新版本合并
        • 最后,推送到主存储库。

      警告:如果您不确定此过程,请务必备份您的文件。

      这并不危险,但安全总比后悔好。

      【讨论】:

      • 方法#1不会合并任何东西。它将简单地使用以前未提交的文件的状态创建一个新的头部提交。您不能将提交与其前任合并,因此合并将失败
      • 如果未版本化文件夹的所有文件都是新的,则可以使用。这个想法是避免进行合并。你的答案是我的两种方法的混合。一个工作起来太简单了,也许另一个太复杂了。你打中路赢了,我输了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多