Python 自定义 Mercurial 合并工具正在处理中?
Python custom Mercurial merge tool in process?
给定自定义 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:
前缀。
是否有任何其他方法可以提供可以 运行 进行中的自定义合并工具?(例如,使用挂钩或扩展)
我想这样做的原因
- 我不想随我的应用程序一起发送 python.exe。 (未成年人)
- 在某些系统上(例如 iOS)很难启动外部进程,因此在进程中使用自定义合并工具 运行 会使事情变得容易得多。
这在 Mercurial 4.7 和更新版本中是可能的。
MergeTool configuration documentation
一个指定 python 文件以及 python 函数。
merge-tools.MyMergeTool.executable=python:mymergetool.py:mergefn
函数签名是这样的:
def mergefn(ui, repo, args, **kwargs):
给定自定义 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:
前缀。
是否有任何其他方法可以提供可以 运行 进行中的自定义合并工具?(例如,使用挂钩或扩展)
我想这样做的原因
- 我不想随我的应用程序一起发送 python.exe。 (未成年人)
- 在某些系统上(例如 iOS)很难启动外部进程,因此在进程中使用自定义合并工具 运行 会使事情变得容易得多。
这在 Mercurial 4.7 和更新版本中是可能的。 MergeTool configuration documentation
一个指定 python 文件以及 python 函数。
merge-tools.MyMergeTool.executable=python:mymergetool.py:mergefn
函数签名是这样的:
def mergefn(ui, repo, args, **kwargs):