作为用户,我通常使用hg st
来检查回购的状态,并验证它是否处于干净状态,且没有修改过的文件。如何检查mercurial repo是否处于清洁状态?
在这里,我想以编程方式做到这一点。我知道我也可以使用hg st
,但输出不太理想,不适合用电脑程序进行消费。有没有更好的方法来检查mercurial repo是否处于清洁状态?
作为用户,我通常使用hg st
来检查回购的状态,并验证它是否处于干净状态,且没有修改过的文件。如何检查mercurial repo是否处于清洁状态?
在这里,我想以编程方式做到这一点。我知道我也可以使用hg st
,但输出不太理想,不适合用电脑程序进行消费。有没有更好的方法来检查mercurial repo是否处于清洁状态?
如果您发出hg identify --id
命令,则会在存储库修改了文件后为该ID添加+
字符。 (注:此标志不报告未跟踪文件)
如果用grep命令为+
字符输出,则可以使用退出状态,以确定是否有修改或无:
$ hg init
$ hg identify --id | grep --quiet + ; echo $?
1
$ touch a
$ hg identify --id | grep --quiet + ; echo $?
1
$ hg add a
$ hg identify --id | grep --quiet + ; echo $?
0
太棒了!我想知道这个'+'符号是什么。所以我猜想存储'hg id -i'的输出就足以对回购的状态有一个很好的了解。 –
你应该使用hg summary
:
$ hg init
$ echo blablabla > test.txt
$ hg summary
parent: -1:000000000000 tip (empty repository)
branch: default
commit: 1 unknown (clean)
update: (current)
大多数主要编程语言都有,您可以访问HG的API。
我不明白为什么输出不太理想,不适合电脑程序使用。如果工作副本不干净,则会为每个不干净的文件输出状态字符,空间和文件路径。如果它是干净的,它不输出任何东西。这并不容易。 –
@SteveKaye:一个布尔值将更好:)关于回滚的 –
:我使用hg st,而不是“hg status”。它工作得很好,输入的字符也较少。新手学习这些缩写可能很有趣。 –