【问题标题】:Merge in local, base or other?在本地、基地或其他地方合并?
【发布时间】:2014-12-11 20:26:02
【问题描述】:

我有一个项目,我在其中使用 mercurial 设置了一个 bitbucket 存储库。 我们实际上是 3 岁,所以我们正在使用分支。

当我们进行合并时,我们非常随机地进行了很多次合并失败。

实际上,我正在使用 Meld,我真的不知道我必须在 repo 的“哪个”部分选择要合并的源代码的哪个部分。

那么,当我合并时,我应该在哪里做呢? 我不确定我是否必须在本地、基础或其他上执行此操作,即使我知道本地对应于我的最后修改,其他对应于我要合并的分支的最后修改,而且实际上我我不太确定其他是什么...

【问题讨论】:

  • 我认为您的问题在这里不是很清楚,您能否使用特定文件举例说明问题所在? Base 是本地(工作目录)和其他(您尝试合并到本地的分支变更集)中不同的文件的共同祖先。
  • 好吧,例如我在分支 A,当我执行 hg merge B 时,它会为每个存在冲突的文件打开 meld,并突出显示所有不同的内容。但问题是我不确定我必须将差异移到哪一边。例如,如果在我的分支 A 中,在一个文件中我有 void foo() (在本地),而在另一个分支 B 中,我有 void foo(int bar) (所以在“其他”中,如果 i' m 对),我想保留“void foo()”,我应该将差异移到哪里?
  • 这听起来像是您正在寻求有关如何专门使用 Meld 的帮助?恐怕我不熟悉它。很抱歉,如果您已经知道以下内容,我只是不确定您现在的知识在哪里。当您从 B 合并到 A 时,您只是将文本从 B 复制到 A 的工作副本中的磁盘文件中。因此,如果您不希望从 B 进行更改,那么您只需将工作副本保持原样.
  • 没问题,仍然感谢您的帮助。我不确定 meld 是否是问题所在,我认为 kdiff 或其他软件的工作方式相同。至于我的知识,基本上我只做简单的推、拉、分支,当它工作时,合并。

标签: merge mercurial


【解决方案1】:

经过仔细审查,我发现了这一点。你想合并到local 如果我错了,请纠正我,但经过一些测试后我很确定

本地

合并更改的正确位置。将由合并产生的本地文件。这可能已经包含一些自动合并的行。

基础

你要合并的地方。

其他

你正在拉的合并

【讨论】:

    【解决方案2】:

    这可能不是“正确”的答案,但是当有疑问时,我会通过让它们看起来都“正确”合并来使它们全部匹配(有时我必须与我的同事讨论“正确”外观的基础是什么他们的变化)。

    通过这样做,我确保合并会成功,因为 meld 不能也不会实际更改 mercurial 中的上游数据。所以没有坏处。对于我的生活,我也无法确定要合并到哪个窗格(主要是因为“基础与本地”一词含糊不清)。所以这是一种奇怪的方法,但它确实有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-09
      • 2021-08-24
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多