2012-06-13 8 views
6

Come utente, di solito uso hg st per controllare lo stato di un repository e verificare che sia in uno stato pulito, senza file modificati.Come si controlla se un repository mercuriale è in uno stato pulito?

Qui mi piacerebbe farlo a livello di programmazione. So che posso anche usare hg st per quello, ma l'uscita è meno ideale per il consumo da un programma per computer. C'è un modo migliore per verificare se un repository mercuriale è in uno stato pulito?

+1

Non vedo perché l'uscita non sia l'ideale per il consumo da parte di un programma per computer. Se la copia di lavoro non è pulita, restituisce un carattere di stato, uno spazio e il percorso del file per ogni file che non è pulito. Se è pulito, non emette nulla. Non è molto più facile di così. –

+0

@SteveKaye: un booleano sarebbe più carino :) –

+0

sul rollback: io uso hg st, non "hg status". Funziona ugualmente bene e ha meno caratteri da digitare. Può essere interessante per i nuovi arrivati ​​imparare queste abbreviazioni. –

risposta

6

Se si emette il comando hg identify --id, l'ID verrà suffisso con un carattere + quando il repository ha modificato i file. (Nota:. Questo flag non segnala file non monitorate)

Se grep l'output di questo comando per il personaggio +, è possibile utilizzare lo stato di uscita per determinare se ci sono modifiche o no:

$ 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

Fantastico! Mi stavo chiedendo cosa fosse questo segno '+'. Quindi immagino che memorizzare l'output di 'hg id -i' sia sufficiente per avere una buona idea dello stato di un repository. –

3

si dovrebbe usare 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

La maggior parte dei principali linguaggi di programmazione hanno API HG è possibile accedere.

Problemi correlati