作为用户,我通常hg st
用来检查 repo 的状态,并验证它是否处于干净状态,没有修改过的文件。
在这里,我想以编程方式执行此操作。我知道我也可以使用hg st
它,但是输出对于计算机程序的消耗来说并不理想。有没有更好的方法来检查 mercurial repo 是否处于干净状态?
If you issue the hg identify --id
command, it will suffix the ID with a +
character when the repository has modified files. (Note: this flag does not report untracked files.)
If you grep the output of this command for the +
character, you can use the exit status to determine whether there are modifications or no:
$ 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\ Kayes 评论,这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