Mercurial extdiff 一次一个

发布于 2024-12-03 02:22:17 字数 291 浏览 0 评论 0原文

我使用 winmerge 作为我的 extdiff 工具,如下所示:

[extdiff]
cmd.winmerge = C:\Program Files\WinMerge\WinMergeU.exe
opts.winmerge = /e /x /ub /wl

问题是,当我运行 hg winmerge 时,它​​似乎会立即发送所有文件,而例如在 Git 中,当我执行diff 它一次调用一个修改过的文件的 difftool。我可以在 Mercurial 中获得相同的行为吗?

I am using winmerge as my extdiff tool, like this:

[extdiff]
cmd.winmerge = C:\Program Files\WinMerge\WinMergeU.exe
opts.winmerge = /e /x /ub /wl

The thing is, when I run hg winmerge it seems that it sends all of the files at once, while for example in Git, when I do a diff it calls the difftool with one modified file at a time. Can I get the same behaviour in Mercurial?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情何以堪。 2024-12-10 02:22:17

就像Mercurial:权威指南<中所解释的那样/a>,extdiff 创建源树的两个快照并在它们上调用 diff 工具。您的工具必​​须支持目录差异才能工作,但正如所解释的,您可以使用脚本来解决此问题。

此示例脚本在书中给出。它基本上需要两个目录并对每个文件调用 interdiff 实用程序。

对于您的情况,您可以轻松地调整脚本来调用 winmerge 。只需修改第 41 行:

if os.system('winmerge /e /x /ub /wl "%s" "%s"' % (name(sys.argv[1], f),

假设您创建了一个 hg-winmerge 脚本,然后您可以像这样配置 extdiff:

 [extdiff]
 cmd.winmerge = C:\Path\To\My\Script\hg-winmerge

希望这会有所帮助!

Like explained in Mercurial: The Definitive Guide, extdiff creates two snapshot of the source tree and call the diff tool on them. You're tool has to support directory diff for it to work, but like explained, you can use scripting to workaround this.

This example script is given in the book. It basically takes the two directories and call the interdiff utility on every files.

In your case, you can easily adapt the script to call winmerge instead. Just modify the line 41 :

if os.system('winmerge /e /x /ub /wl "%s" "%s"' % (name(sys.argv[1], f),

Say you create an hg-winmerge script , you can then configure extdiff like this :

 [extdiff]
 cmd.winmerge = C:\Path\To\My\Script\hg-winmerge

Hope this helps !

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文