2012-06-13 24 views
6

Bir kullanıcı olarak, genellikle bir repo durumunu kontrol etmek için hg st kullanıyorum ve değiştirilmiş dosyalar olmaksızın temiz durumda olduğunu doğrulayın.Bir mükerrer repo temiz bir durumda olup olmadığını nasıl kontrol edersiniz?

İşte Bu program aracılığıyla yapmak istiyorum. Bunun için hg st'u da kullanabileceğimi biliyorum, ancak çıktı bir bilgisayar programı tarafından tüketilmek için ideal değil. Bir recur repo'nun temiz bir durumda olup olmadığını kontrol etmenin daha iyi bir yolu var mı?

+1

Çıkışın neden bir bilgisayar programı tarafından tüketilmekten daha düşük olduğunu anlamıyorum. Çalışma kopyası temiz değilse, bir durum karakteri, bir boşluk ve temiz olmayan her dosya için dosyanın yolunu verir. Temizse, hiçbir şey çıkarmaz. Bundan daha kolay olamaz. –

+0

@SteveKaye: bir boolean geri alma hakkında daha hoş :) –

+0

olacaktır: Ben hg st değil, "hg durumu" kullanırlar. Eşit derecede iyi çalışır ve yazılacak daha az karakterdir. Bu kısaltmaları öğrenmek yeni gelenler için ilginç olabilir. –

cevap

6

hg identify --id komutunu verirseniz, depo değiştirilmiş dosyaları olduğunda, + karakteriyle kimliği ekler. (Not:. Bu bayrak izlenmeyen dosyaları bildirmez):

$ 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

Harika! Bu '+' işaretinin ne olduğunu merak ediyordum. Bu yüzden, "hg id -i" nin çıktısını saklamak, bir repo durumu hakkında iyi bir fikre sahip olmak için yeterlidir. –

3

Eğer + karakter için bu komutun çıktısını grep varsa, modifikasyonlar veya hiç olup olmadığını belirlemek için çıkış durumunu kullanabilirsiniz

sen hg summary kullanmalıdır:

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

En büyük programlama dilleri erişebileceğiniz HG API'leri var.

İlgili konular