【发布时间】:2013-11-11 23:53:25
【问题描述】:
我创建了一个 repo 并对文件进行了一些更改。然后我承诺并继续工作。进行了一些更改,我再次承诺。 我不得不回到第一个版本,所以我做了:
hg up 5f01300
第一个版本的文件又回来了。
我做了一些更改并再次提交。
hg commit -m 'Updated'
创建了一个新头,然后我尝试了:
hg push
Mercurial 说有 “杰出的未承诺” 东西。
我再次尝试提交:
hg commit -m 'Changes accepted'
然后我输入:
hg merge
所以出现了很多错误,因为有两个头,我无法合并它们。
有时我会尝试像上面那样进行合并,但效果很好。通常在我第二次尝试重复该过程时,它会中断并且我无法合并任何内容。
有人可以教如何正确合并吗?
[一些错误]
通常,在第二次,会发生这种情况:
int main(int argc, char **argv)
{
printf("hello, world!\n");
<<<<<<< local
printf("sure am glad I'm not using CVS!\n");
=======
printf("sure am glad I'm using Mercurial!\n");
>>>>>>> other
return 0;
}
我必须这样做:
hg resolve -m hello.c
【问题讨论】:
-
听起来好像有合并冲突(多个头只是不同的[匿名]分支)。请参阅 mercurial.selenic.com/wiki/TutorialMerge 和 mercurial.selenic.com/wiki/TutorialConflict - 还要确保合并到 clean 分支
-
(您必须解释“大量错误”和“中断”的含义才能获得更具体的建议。)
-
这只是一个正常的合并冲突。照它说的去做。或者使用 kdiff3 之类的工具(这是我通常推荐的)在合并操作期间直观地处理冲突。请参阅stackoverflow.com/questions/9003588/… 了解如何配置(和使用)kdiff3 工具。
标签: macos mercurial merge bitbucket