2011-12-24 19 views
16

Ho dimenticato di taggare e una versione precedente dei miei file con un tag di rilascio. La versione precedente è in r13, l'ultima è su r65. Ho clonato l'ultimo repository in una nuova directory, ho fatto un "hg update -r13" per ottenere il vecchio codice che volevo taggare, poi ho fatto il comando tag, ma ho ricevuto il messaggio:Mercurial, come taggare la vecchia versione dei file

abort: non a una diramazione (usa -f per forzare)

È sicuro usare l'opzione -f in questa situazione?

risposta

19

Immagino che si possa ancora fare il tagging direttamente nel repository senza aggiornarsi ad una particolare revisione.

hg tag -r 13 nometag

Vedi i dettagli a Mercurial wiki.

Ho provato a provarla:

temp $ hg init . 
temp $ touch a.txt 
temp $ hg add a.txt 
temp $ hg commit -m "added a" 
temp $ hg status 
temp $ echo "sdwwdd" >> a.txt 
temp $ hg commit -m "modified a" 
temp $ echo "\neddwedd" >> a.txt 
temp $ hg commit -m "modified a again" 
temp $ hg log 
changeset: 2:ef40a402fdab 
tag:   tip 
user:  "xxxx" 
date:  Fri Dec 23 16:51:48 2011 -0800 
summary:  modified a again 

changeset: 1:d630dc3e2e3a 
user:  "xxxx" 
date:  Fri Dec 23 16:51:31 2011 -0800 
summary:  modified a 

changeset: 0:7c9917f24515 
user:  "xxxx" 
date:  Fri Dec 23 16:51:04 2011 -0800 
summary:  added a 

uscita:

temp $ hg tag -r 1 a.txt a_1 
temp $ hg tags 
tip        3:e3157256098f 
a_1        1:d630dc3e2e3a 
a.txt        1:d630dc3e2e3a 
temp $ hg tag -r 1 all_1 
temp $ hg tags 
tip        4:a643971911d8 
all_1        1:d630dc3e2e3a 
a_1        1:d630dc3e2e3a 
a.txt        1:d630dc3e2e3a