2011-10-20 48 views
1

我在我的hg设置中有一个pre-diff钩子,但当我尝试提交我的更改时,它不会被执行。如何让TortoiseHG执行pre-diff动作

我想要做的是在提交之前生成数据库模式文件,以便它将出现在更改列表中。

我也有一个更新钩,它工作正常。 TortoiseHG不执行hg diff命令吗?我可以用哪个钩子代替?

+0

为什么不使用precommit hook? –

+0

预先提交为时已晚,我想检查包括数据库更改在内的所有更改,以便轻松找出1个工作项目的完全更改(并且更高效,然后必须紧接着执行2个提交) – sebastiaan

+0

pre-提交,你将在**这个提交中构建架构和提交。请参阅http://lildude.co.uk/mercurial-precommit-isnt-entirely-pre –

回答

1

TortoiseHg(如v2.1.4的)中的至少3种方式,其中没有使用原始hg diff命令执行进行比较:

  1. 在工作台的“修订详情”窗口,有一个文件显示级别的统一差异。该差异通过mdiff.unidiff方法在mdiff.py中获得。这种方法绕过了钩子机制。
  2. 如果在修订图中选择了变更集(或变更集范围),用户可以要求提供“视觉差异”。该方法将文件从选定的修订版复制到临时目录,然后将它们与外部可视化比较工具进行比较。该方法也绕过了钩子机制。
  3. 在“清单”视图中,您可以选择一个文件,右键单击并选择“比较文件修订”。这使用了一个自定义的可视化diff工具,它也绕过了钩子机制。

据我所知,TortoiseHg并没有为它的diff机制公开任何钩子。