Python自定义Mercurial合并工具正在进行中?

时间:2018-04-13 21:24:11

标签: mercurial mercurial-hook mercurial-extension

给定自定义hg合并工具mymergetool.py

在Linux上,我可以这样做:

merge-tools.MyMergeTool.executable=mymergetool.py

在新进程中运行python。

但是在Windows上,必须指定python.exe作为可执行文件。 但鉴于系统中可能不存在(我使用嵌入在应用程序中的hg)

我希望能够做到这样的事情

merge-tools.MyMergeTool.executable=python:mymergetool.py

在与hg。

相同的过程中运行合并工具

然而,在阅读hg的filemerge.py时,似乎在此上下文中不支持python:前置。

还有其他方法可以提供可以在进程中运行的自定义合并工具吗?(例如,使用挂钩或扩展程序)

我想要这样做的原因

  1. 我不想用我的应用程序发送python.exe。 (次要)
  2. 在某些系统上(例如iOS)很难启动外部进程,因此在运行过程中运行自定义合并工具会使事情变得更加容易。

1 个答案:

答案 0 :(得分:0)

Mercurial 4.7和更高版本中现在可以实现。 MergeTool configuration documentation

(Release Notes)

一个指定了python文件以及python函数。

merge-tools.MyMergeTool.executable=python:mymergetool.py:mergefn

函数签名是这样的:

def mergefn(ui, repo, args, **kwargs):