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



给定一个自定义的 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(,很难启动外部进程,因此在进程中运行自定义合并工具将使事情变得容易得多。

这在Mercurial 4.7及更高版本中是可能的。合并工具配置文档

(发行说明(

一个

指定一个python文件和一个python函数。

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

函数签名如下:

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

最新更新