【问题标题】:How to get TortoiseHG to perform a pre-diff action如何让 TortoiseHG 执行预差异操作
【发布时间】:2011-12-11 12:25:38
【问题描述】:

我的 hg 设置中有一个 pre-diff 钩子,但是当我尝试提交更改时它没有被执行。

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

我还有一个可以正常工作的更新挂钩。 TortoiseHG 没有执行 hg diff 命令吗?我可以改用哪个钩子?

【问题讨论】:

  • Precommit 为时已晚,我想检查我的更改,包括数据库更改,以便轻松找出 1 个工作项的确切更改(而且它比必须正确执行 2 次提交更有效率一个接一个)
  • 预提交,您将在其中构建架构并在 this 提交中更改提交。见lildude.co.uk/mercurial-precommit-isnt-entirely-pre
  • 我试过了,还是太晚了:需要在执行 hg diff 之前生成 sql 脚本,否则新脚本不会出现在更改列表中。
  • 这个问题更适合 TortoiseHg 讨论列表 (lists.sourceforge.net/lists/listinfo/tortoisehg-discuss)。我猜 TortoiseHg 不会像你期望的那样使用hg diff。
  • THG 具有每个 repo 的自动提交列表。给它添加sql

标签: mercurial hook tortoisehg mercurial-hook


【解决方案1】:

TortoiseHg(从 v2.1.4 开始)以至少 3 种方式执行 diff,其中没有一种使用原始的 hg diff 命令:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-12
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多