如果 Mercurial 工作树中有未提交的更改,检查脚本的最佳方法是什么。
(就像我在 git 中使用 git diff --quiet
的方式)
最佳答案
在mercurial 1.4及更高版本中,您可以使用summary命令,当存在更改时,它会提供如下输出:
$ hg summary
parent: 0:ad218537bdef tip
commited
branch: default
commit: 1 modified
update: (current)
以及此提交后:
$ hg summary
parent: 1:ef93d692f646 tip
sfsdf
branch: default
commit: (clean)
update: (current)
或者,您可以安装 prompt extension并做这样的事情:
$ hg prompt '{status}'
它将输出 !
或 ?
或不输出任何内容。
当然,这两者都只是替代文本输出。我找不到任何直接使用退出代码的东西,但是自从 $?检查管道中您可以执行的最后一个命令?
hg summary | grep -q 'commit: (clean)'
哪个将设置$?如果未提交任何更改,则非零:
$ hg summary | grep -q 'commit: (clean)' ; echo $?
0
$ echo more >> that
$ hg summary | grep -q 'commit: (clean)' ; echo $?
1
关于mercurial - 测试 Mercurial 中未提交的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210403/