2012-06-13 8 views
6

Jako użytkownik zwykle używam hg st do sprawdzania statusu repozytorium i sprawdzania, czy jest on w stanie czystym, bez zmodyfikowanych plików.Jak sprawdzić, czy repozytorium mercurialne jest w czystym stanie?

Tutaj chciałbym zrobić to programowo. Wiem, że mogę również użyć do tego celu hg st, ale wynik jest mniejszy niż idealny do konsumpcji przez program komputerowy. Czy istnieje lepszy sposób sprawdzenia, czy repozytorium mercurialne jest w stanie czystym?

+1

Nie widzę powodu, dla którego wynik jest mniejszy niż idealny do konsumpcji przez program komputerowy. Jeśli kopia robocza nie jest czysta, wypisuje znak statusu, spację i ścieżkę do pliku dla każdego pliku, który nie jest czysty. Jeśli jest czysty, nie wyświetla niczego. Nie ma to nic prostszego. –

+0

@SteveKaye: boolean byłby ładniejszy :) –

+0

o wycofywaniu: Używam hg st, nie "hg status". Działa równie dobrze i ma mniej znaków do wpisania. Dla początkujących może być interesujące zapoznanie się z tymi skrótami. –

Odpowiedz

6

Jeśli zostanie wydane polecenie hg identify --id, będzie ono miało przyrostek ID o numerze +, gdy repozytorium zmodyfikowało pliki. (Uwaga:. Ta flaga nie zgłasza pliki nieśledzone)

Jeśli grep wyjście tego polecenia do charakteru +, można użyć status wyjścia w celu ustalenia, czy istnieją modyfikacje lub nie:

$ 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

Awesome! Zastanawiałem się, co to znak "+". Więc domyślam się, że przechowywanie wyjścia 'hg id -i' wystarczy, aby mieć dobry pomysł na stan repozytorium. –

3

należy użyć 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

Większość głównych języków programowania ma API HG można uzyskać dostęp.

Powiązane problemy