至少,我想要的是“hg merge”在MS Paint(ugh)的并排实例中打开冲突的版本,所以我可以手动进行合并。除MS Paint之外的工具建议的加分点。目前我在看Araxis Merge。
答案 0 :(得分:2)
请参阅Mercurial wiki中的merge tool configuration page。您可以根据文件扩展名使Mercurial启动特定的合并工具。
Araxis工具看起来很酷,但我没有使用它的经验(我使用Linux)。如果这不适合你,我会做一个小脚本,显示所有三个图像(基本版本和两个冲突的版本),让你选择“赢家”。
答案 1 :(得分:0)
您可以对图像进行uuencode或base64编码(您可以设置钩子进行自动转换),这样您在合并时就不必处理二进制文件了。但是,合并通常适用于行而不是字符,我没有这么有效,因为enocding通常不包含新行。
答案 2 :(得分:0)
Araxis Merge website表示它将integrate with Mercurial。该产品是商业产品,因此如果您拥有许可证,您可能希望了解有关在Mercurial中使用其产品的信息。
如果您没有许可证并且想要使用他们的产品,他们可能会帮助您使演示工作。然后你可以使用假存储库来模拟问题并测试它......
如果您想继续使用Commercial,那么在每个文件的基础上手动配置合并工具是唯一的方法。我不知道任何支持合并的开源或免费绘画程序。作为MS Paint的子程序,您可以将Paint.net配置为使用Mercurial(手动)。
答案 3 :(得分:0)
这是配置Mercurial以使用MS Paint合并图像的基本方法。
首先在Windows系统路径上的某处创建一个文件mspaintmergetool.cmd
(以便Mercurial可以找到它),包含:
START %WINDIR%\system32\mspaint.exe %1
START %WINDIR%\system32\mspaint.exe %2
START %WINDIR%\system32\mspaint.exe %3
START /WAIT %WINDIR%\system32\mspaint.exe %4
然后将Mercurial配置为使用此脚本合并图像,方法是将以下内容添加到.hgrc
或mercurial.ini
:
[merge-tools]
mspaintmergetool.args = $base $local $other $output
mspaintmergetool.binary = True
[merge-patterns]
**.bmp = mspaintmergetool
**.png = mspaintmergetool
**.jpg = mspaintmergetool
如果在合并期间名为cat.png
的图像发生冲突,则会打开四个MS Paint实例:
cat.png~base
- 这就是在开发拆分为现在尝试合并回来的两个流之前图像的样子cat.png~orig
- 这是您将合并到(a.k.a.local)的分支中的图像。它是您在开始此合并之前在工作目录中开始的图像cat.png~other
- 这是您正在合并 (a.k.a. remote)cat.png
- 当此Paint实例打开时,它最初包含与~orig
相同的图像;您的任务是将此实例中的图像编辑为~orig
和~other
的组合,保存并退出此Paint实例。退出时,Mercurial会将冲突标记为已解决并继续合并。请注意,前三个实例不会自动关闭,因此为避免与潜在的剩余冲突图像混淆,您可能需要在关闭此实例之前手动关闭这些实例。