2012-06-13 4 views
6

사용자는 보통 hg st을 사용하여 repo의 상태를 확인하고 수정 된 파일이없는 깨끗한 상태인지 확인합니다.수은 저장소가 깨끗한 상태인지 어떻게 확인합니까?

여기 프로그래밍 방식으로이 작업을 수행하려고합니다. 나는 또한 hg st을 사용할 수 있지만 출력은 컴퓨터 프로그램에서 소비하기에 이상적이지 않다는 것을 알고 있습니다. 수은 저장소가 깨끗한 상태인지 확인하는 더 좋은 방법이 있습니까?

+1

출력이 컴퓨터 프로그램 사용에 이상적이지 않은 이유가 없습니다. 작업 사본이 깨끗하지 않으면 상태 파일, 공간 및 정리되지 않은 각 파일의 파일 경로를 출력합니다. 깨끗한 경우 아무 것도 출력하지 않습니다. 그것보다 훨씬 쉽지는 않습니다. –

+0

@SteveKaye : 부울 값이 더 좋을 것입니다. :) –

+0

롤백 : "hg status"가 아닌 hg st를 사용합니다. 똑같이 잘 작동하며 입력 할 문자가 적습니다. 신규 이민자가 이러한 약어에 대해 배우는 것은 흥미로울 수 있습니다. –

답변

6

hg identify --id 명령을 실행하면 리포지토리에서 파일을 수정하면 ID 뒤에 + 문자가 붙습니다. (참고 :.이 플래그는 비 추적 파일을보고하지 않습니다) :

$ 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 
+0

굉장! 이 '+'기호가 무엇인지 궁금 해서요. 그래서'hg id -i'의 결과물을 저장하는 것이 repo의 상태를 파악하기에 충분하다고 생각합니다. –

3

을 당신이 + 문자에 대한이 명령의 출력을 grep을 경우에, 당신은 수정이나 더이없는 여부를 결정하기 위해 종료 상태를 사용할 수 있습니다

당신은 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를 가지고있다.

관련 문제