9

ユーザーとして、私は通常hg st、リポジトリのステータスをチェックし、ファイルが変更されていないクリーンな状態であることを確認するために使用します。

ここでは、これをプログラムで実行したいと思います。私もhg stそのために使用できることは知っていますが、出力はコンピュータープログラムによる消費には理想的とは言えません。Mercurialリポジトリがクリーンな状態にあるかどうかを確認するためのより良い方法はありますか?

4

4 に答える 4

7

コマンドを発行すると、リポジトリでファイルが変更されたときにhg identify --idIDの末尾に文字が付きます。+(注:このフラグは、追跡されていないファイルを報告しません。)

キャラクターに対してこのコマンドの出力を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
于 2012-06-13T10:04:14.577 に答える
2

使用する必要がありますhg summary

$ hg init
$ echo blablabla > test.txt
$ hg summary
parent: -1:000000000000 tip (empty repository)
branch: default
commit: 1 unknown (clean)
update: (current)
于 2012-06-17T19:04:02.863 に答える
0

ほとんどの主要なプログラミング言語には、アクセスできるHGAPIがあります。

于 2012-06-17T22:11:20.640 に答える
0

この回答は、このトピックを検索している他の人に役立つ可能性があります。

上記の@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
于 2019-02-07T10:55:11.737 に答える