我可以打破"打破"一个hg工作副本,以便在提交之前必须恢复它?

时间:2014-04-22 19:11:42

标签: mercurial

我有一个实用程序脚本,它将配置本地开发人员实例以模仿特定的生产实例 - 复制正确的连接字符串,客户端文件等 - 从而可以轻松调查某些问题。

因为这都是在本地完成的,所以这会更改工作目录中的文件。因此,脚本所做的第一件事是打印出一个很大的警告,提醒开发人员不要在完成后提交并还原更改。然而,有可能忘记或错过这个警告,因为我的构建系统的副本滚动,我想知道它是否可能更进一步。

是否可以对hg repo执行某些操作,以便拒绝提交并且开发人员 先恢复?

我意识到问题有一些变量,只要还原什么提交什么,但鉴于我甚至不确定这是否可行,我是愿意接受警告,以获得答案。

1 个答案:

答案 0 :(得分:2)

这正是hooks的用途。您需要在每个仓库或precommit上使用pretxnchangegroup挂钩。

通过创建检查特定文件或特定更改的precommit挂钩(脚本),您可以使提交失败并打印出您需要的任何警告。如果事务有效,脚本的返回值表示为mercurial。

在接受或拒绝更改集之前,请使用以下generic sample检查是否存在要提交的文件。