Как вы проверяете, находится ли ртутное РЕПО в чистом состоянии?

как пользователь, я обычно использую hg st чтобы проверить состояние РЕПО и убедиться, что оно находится в чистом состоянии, без измененных файлов.

здесь я хотел бы сделать это программно. Я знаю, что я также могу использовать hg st для этого, но выход меньше, чем идеально подходит для потребления компьютерной программой. Есть ли лучший способ проверить, находится ли ртутное РЕПО в чистом состоянии?

3 ответов


если вы 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, к которым вы можете получить доступ.