我目前pre-commit
在我的 mercurial 项目中有一个钩子,它让用户可以选择更新项目的版本号,如果他们愿意的话(例如1.0
to 1.0.1
or 1.1
or 2.0
)。他们选择其中一个选项,钩子会在提交之前更新项目文件之一中的版本号。
当我运行时hg commit
,这个钩子运行并使用新版本号更新相关文件,然后执行提交。
我想添加到钩子中,以便它也可以调用hg tag <new_verson_number>
。
但是,我不能将它添加到pre-commit
钩子中,因为这样标签将在调用提交之前添加,导致标签是一个过时的修订版。
我想将hg tag
命令添加到commit
钩子(在提交后运行),以便事件序列如下所示:
hg commit -m "my commit message"
- 用户说是,我想更改版本号
- 版本号在相关文件中更新
- 提交发生[这里一切都很好]
- 如果用户更改了版本号,请运行提交挂钩:
hg tag <new_version_number>
。
现在,我可以添加一个提交挂钩,从它存储的文件中读取新版本号并运行hg tag <new_version_number>
,但是如果用户决定不更改版本号怎么办?在这种情况下,我不想添加标签,如果我盲目地运行,hg tag <new_version_number>
我最终会得到我不想要的标签。
那么 - 有什么方法可以告诉pre-commit
钩子为钩子留下一些信息commit
(是否添加标签的是/否),并且commit
钩子可以使用它来确定是否添加标签?
干杯。