Questa non è una questione di gusti e c'è una differenza. In breve, chiudi il ramo, quindi unisci.
Il fatto è che i nomi dei rami Mercurial sono solo "metadati" per ciascun changeset. Influisce sui risultati di determinati comandi come hg branches
omette quelli chiusi, oppure hg push
non consentire l'aggiunta di una nuova testata per filiale di default. Ma di nuovo - sta filtrando.
Internamente, Mercurial vede il repository come grafico di changeset, DAG specifico. Inoltre, le teste topologiche di tale grafico vengono utilizzate per l'implementazione della logica, ad esempio durante il confronto degli archivi locali e remoti durante lo hg pull
. Un numero maggiore di teste topologiche può (leggermente ma ancora) influire sulle prestazioni - How do closed branches affect Mercurial performance?. Inoltre un certo numero di essi può causare 400 Bad Request
da Mercurial in esecuzione nel server IIS - https://bitbucket.org/site/master/issue/8263/http-400-bad-request-error-when-pulling.
Quando un primo si unisce e quindi si chiude, il ramo è chiuso, va bene, e l'uomo non vede quel ramo di default. Ma il mercurio ha un'altra testa topologica. Guarda qui sotto per una spiegazione visiva. Quindi chiudere prima.
close then merge merge then close
---------------- ----------------
@ default, head @ default, head
| |
o merge <--> | x close branch, head
|\ | |
| x close branch <--> o | merge
| | |\|
o | dev on default o | dev on default
| | | |
| o dev on branch | o dev on branch
| | | |
| o open branch | o open branch
|/ |/
o default o default
Si può guardare here per i dettagli su come siamo arrivati a questa conclusione.
fonte
2014-10-28 10:15:14
E "chiudi quindi unisci" minimizza anche gli aggiornamenti. "Chiudi -> aggiornamento al ramo principale -> unione" è più semplice di "aggiornamento al ramo principale -> unione -> aggiornamento al ramo unito -> chiudi -> aggiorna nuovamente al ramo principale" – Nashev