我有两台机器,第7窗口使用TortoiseHG 2.6,Linux使用TortoiseHG 1.5。我使用bitbucket作为一个网站来保存我的集中存储库。窗口机器与bitbucket用户帐户,Cassie-win和linux机器与bitbucket用户帐户Cassie-linux相关联。以下是我执行的步骤。
我在我的linux机器上使用了TortoiseHG的“merge with”工具来合并这两个头。但是,它一直未能这样做。我试了几百次,不知道我哪弄错了。 file1和file2都是只有三行的测试文件。我还使用命令“hg resolve file2.txt”来检查错误。但是,它只表明合并失败并没有显示太多信息。有谁知道如何使用TortoiseHG合并工具合并两个头?什么可能是阻止TortoiseHG合并两个头的问题?
我嵌入了我在具有TortoiseHg 1.5的Linux机器上拍摄的屏幕截图
我右键点击了“来自Cassie-win帐户”,它有“合并”选项。然后,我使用“合并”工具单击“合并”选项,但它失败并显示如下错误消息。
非常感谢,
答案 0 :(得分:1)
通过TortoiseHg中的“merge with”,你的意思是你在将工作目录更新到另一个头后,从一个头的上下文菜单中尝试了“与本地合并”吗?如果是这样,你应该看到一个向导带你完成合并的步骤。如果不能自动合并两个头,TortoiseHg会期望你介入。一旦它要求您这样做,您就有一些选项,包括“Mercurial Resolve”和“Tool Resolve”。 如果您可以发布有关合并“失败”时看到的错误的更多详细信息,我们可能会更有帮助。
答案 1 :(得分:1)
首先要做的事情:合并只是创建一个新的文件版本。您必须先提交它才能看到或推送到其他repo克隆。
现在,如果您正在进行合并并且在两个合并父项中都修改了相同的行或相邻行,则自动合并将不会成功,您将被要求选择在每次冲突时要执行的操作点。 Kdiff3
,TortoiseHG用于合并Windows上文件的工具并不十分直观,所以这里有一个概述:
如果要合并多个文件,您将看到一个目录控件。导航到其中一个文件并打开它,这样您就会看到两个文件版本。
根据具体情况,您现在可能需要激活“合并此文件”(在合并菜单和工具栏上),这将显示文件的第三个版本(合并结果)另外两个。
您现在可以从更改导航到更改,然后单击A
和B
按钮以选择要使用的更改。请注意,按钮是切换的,可以同时激活这两个版本(将两个版本都导入合并)。另请注意,您还会看到可以自动合并的差异。一般情况下,你可以不管它们(有导航按钮直接进入下一个未解决的差异)。
一旦你弄清楚如何处理所有这些并为每个差异选择了一个版本,你就可以保存并继续下一个文件。完成后,您的合并就可以提交了。
修改强>
所以你需要在Linux端做这个,而你没有Kdiff3
。好的,然后按照老式的方式做:使用命令行和常规编辑器。
当合并失败时,冲突的文件将变为包含两个修订版的上下文差异。用您喜欢的编辑器打开它,仔细查看它并清理每个context-diff区域(当你看到它们时你会知道它们),直到你有一个干净,可用的文件,就像你想要的那样。
退出,放到命令行并输入hg resolve -m file2.txt
。这将从冲突列表中删除该文件。
当您使用所有冲突的文件(您可以使用hg resolve -l
列出它们)时,您将被允许提交,并且您的麻烦已经结束。
PS。如果你不喜欢你已经拥有的合并工具,可以考虑安装kdiff3(它是available for linux,但不知道它的工作情况如何),或{@ 1}} @LazyBadger建议。
答案 2 :(得分:0)
旁注
hg serve
而另一侧只有hg pull <PARTY>
关于合并的问题
当(在任何 SCM中)尝试合并两个不同的编码行时,有两种可能的情况
在您的情况下,显然,他有第二种情况:合并源中的3个字符串存在冲突,而您尚未在TortoiseHG Diff / Merge工具中配置(TortoiseHG
- Global Setting
- TortoiseHG
)
拥有并添加这些工具将是未来的最佳选择。现在你手动编辑冲突文件并在冲突的行中选择正确的数据,将冲突标记为已解决(检查文件的TortoiseHG上下文菜单),删除临时文件,最后提交合并