2009-09-21 10 views

risposta

20

hg branch X fa nulla tranne dire a Mercurial "il prossimo commit che faccio dovrebbe essere sul ramo X." In realtà non "crea" il ramo. Un ramo non esiste finché c'è almeno un commit su di esso:

sjl at ecgtheow in ~/Desktop/test on default at tip 
$ hg branch a 
marked working directory as branch a 

sjl at ecgtheow in ~/Desktop/test on a at tip 
$ hg branch b 
marked working directory as branch b 

sjl at ecgtheow in ~/Desktop/test on b at tip 
$ hg branches 
default      0:aae011bc1b00 

sjl at ecgtheow in ~/Desktop/test on b at tip 
$ echo foo >> x 

sjl at ecgtheow in ~/Desktop/test on b at tip! 
$ hg com -m1 

sjl at ecgtheow in ~/Desktop/test on b at tip 
$ hg branches 
b        1:b66106035d8d 
default      0:aae011bc1b00 (inactive) 

sjl at ecgtheow in ~/Desktop/test on b at tip 
$ 

Quindi la risposta alla tua domanda è: "usa hg branch branch-A per contrassegnare il prossimo commit come essere sul ramo-A"

+3

Grande informazioni, ma potrebbe essere la pena di aggiungere il modo di fare ciò che OP sta cercando di fare: hg branch branchA; commit to branchA; hg update default; hg branch branchB, commit to branchB. La chiave è "hg update default", quindi branchB si basa sullo stesso commit di branchA. –

+0

Buone informazioni, cattiva spiegazione. sjl at ecgtheow .. Eh ..? anche hg com, rendi questo hg commit per i googler. Le persone non dovrebbero avere bisogno di decifrare le risposte. Ci dispiace, ma -1. – Stolas

+0

Ciao Steve, perché non si fa ad aggiungere queste informazioni sulla vostra guida in modo più esplicito di quanto lo sia ora? Potrebbe migliorare la guida. ("Hg branch X non fa altro che dire a Mercurial 'il prossimo commit Faccio dovrebbe essere sul ramo X.' E 'in realtà non 'creare' il ramo. Un ramo non esiste finché c'è almeno un commit su di esso") –

-5

Usa 'hg update -C branch-name'.

+0

No. Se i comandi filiali succedono uno dopo l'altro il primo ramo non esiste perché non ci sono commit su di esso. Inoltre, usare ciecamente -C con l'aggiornamento non è una buona idea. È molto più sicuro usare -c normalmente e usare solo -C quando ne hai davvero bisogno. –

0

Come Carl Meyer dice mi piacerebbe andare per:

hg branch branch-A 
commit branch-A 
hg update default 
hg branch branch-B 
commit branch-B 

Ironia della sorte, credo che Steve Losh fornisce una risposta migliore per la sua guida poi qui (anche se "Un ramo non esiste finché c'è almeno una impegnarsi "è un ottimo consiglio che aggiungerei nella guida).

Se si legge il section on named branches, dà una spiegazione concisa su come funzionano e come passare dall'una all'altra.

Problemi correlati