mercurial - 测试 Mercurial 中未提交的更改

标签 mercurial

如果 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/

相关文章:

java - Eclipse 项目到 mercurial

version-control - 如何使用 "hg bundle"创建 bundle 文件,每个 bundle 文件大小不超过 1GB

mercurial - .hgignore没有为特定用户解析

linux - Mercurial 忽略 LInux 上的创建/修改日期更改

mercurial - 使用Mercurial/TortoiseHg处理嵌套的 Mercurial 库的正确方法是什么?

version-control - 防止在 mercurial 中推送目录

mercurial - 如何在 TortoiseHg 的修订编辑器中更改 View ?

maven - 具有Jenkinsfile和Docker最佳实践的多分支管道项目

mercurial - 在 Mercurial 结帐之间移动不完整的代码

svn - 为什么要使用SVN?那里有任何 stash 的专业人士(通过 GIT/Mercurial/Bazaar)吗?