作为一个用户,我通常使用hg st
检查回购的状态,并验证它是在清洁状态,没有修改的文件。
在这里,我想以编程方式做到这一点。我知道我还可以使用hg st
为,但输出小于由计算机程序非常适合食用。有没有更好的办法来检查一个善变的回购是否处于清洁状态?
如果发出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 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。
这个答案可能是其他人搜索这个话题有用:
我同意@Steve是hg status
以上\卡伊注释是程序消耗一个很好的命令。
这里有一个例子如何在bash脚本使用它:
#!/bin/bash
set -e
cd /path/to/hg-repo
repo_status=`hg status | wc -l`
if [ $repo_status -ne 0 ]; then
echo "Repo is not clean"
else
echo "Repo is clean"
fi