Se v'è un percorso lineare tra la revisione padre corrente e la revisione di destinazione, allora si può solo emettere
hg update right-branch
e Mercurial unire le modifiche nella copia di lavoro nella revisione di destinazione.
Questa operazione viene eseguita utilizzando il macchinario completo di merge in modo che vengano presi in considerazione i nomi, e in caso di conflitti si otterrà un programma di unione a tre vie. Gli approcci shelve- e diff-based mancano di questo e si richiede di risolvere i conflitti a mano con .rej
file. È anche possibile vedere lo stato di unione corrente con hg resolve --list
e riunire nuovamente i file selezionati poiché Mercurial effettua i backup necessari per te.
Se non c'è un percorso lineare, si ottiene questo avvertimento:
abort: crosses branches (merge branches or use --clean to discard changes)
È quindi possibile ottenere ciò che si vuole in primo luogo l'aggiornamento di nuovo ad un antenato comune, e quindi l'aggiornamento di nuovo in avanti. Non sono sicuro al 100% del motivo per cui emettiamo questo avviso, ma la ricerca negli archivi della mailing list dovrebbe darti la risposta se sei curioso.
fonte
2011-09-14 20:39:06
credo Mercurial è molto simile a Git. Quindi credo che tu abbia due opzioni. Salvare manualmente tutti i file aggiunti e modificati, cambiare rami e copiarli sopra il file system.O commetti i cambiamenti nel ramo corrente, passa al ramo che volevi davvero e fai un merging in esso dal ramo precedente. –