你如何检查是否有善变的回购是在干净的状态?

问题描述 投票:7回答:4

作为一个用户,我通常使用hg st检查回购的状态,并验证它是在清洁状态,没有修改的文件。

在这里,我想以编程方式做到这一点。我知道我还可以使用hg st为,但输出小于由计算机程序非常适合食用。有没有更好的办法来检查一个善变的回购是否处于清洁状态?

mercurial dvcs
4个回答
7
投票

如果发出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

3
投票

您应该使用hg summary

$ hg init
$ echo blablabla > test.txt
$ hg summary
parent: -1:000000000000 tip (empty repository)
branch: default
commit: 1 unknown (clean)
update: (current)

0
投票

大多数主要的编程语言有您可以访问HG的API。


0
投票

这个答案可能是其他人搜索这个话题有用:

我同意@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
© www.soinside.com 2019 - 2024. All rights reserved.