In Git posso fare questo:
1. Inizia a lavorare su una nuova funzione:
$ git co -b newfeature-123 # (un ramo di sviluppo di funzionalità locali)
fai qualche commit (M, N, O)
maestro A --- B --- C
\
nuova funzione-123 M --- N --- O
2. Estrarre nuove modifiche dal master upstream:
$ git pull
(master aggiornato con ff-commit)
master A --- B --- C --- D --- E --- F
\
nuova funzione-123 M --- N --- O
3. Rebase off master in modo che la mia nuova funzionalità
può essere sviluppato rispetto alle ultime modifiche a monte:
(da newfeature-123)
$ git rebase master
master A --- B --- C --- D --- E --- F
\
nuova funzione-123 M --- N --- O
Voglio sapere come fare la stessa cosa in Mercurial, e ho cercato il web per una risposta, ma il meglio che ho potuto trovare è stato: git rebase - posso farlo
Questo link fornisce 2 esempi:
1. Devo ammettere che questo: (sostituendo le revisioni dell'esempio con quelle del mio esempio)
hg up -CF hg branch -f newfeature-123 hg trapianto -a -b nuova funzionalità-123
non è poi così male, tranne per il fatto che lascia l'MNO pre-rebase come testa non unita e crea 3 nuovi commit M ', N', O 'che li rappresentano ramificando la linea principale aggiornata.
Fondamentalmente il problema è che finisco con questo:
master A --- B --- C --- D --- E --- F
\ \
newfeature-123 \ M '--- N' --- O '
\
nuova funzione-123 M --- N --- O
ciò non va bene perché lascia dietro di sé impegni locali e indesiderati che dovrebbero essere eliminati.
- L'altra opzione dallo stesso link è
hg qimport -r M: O hg qpop -a hg up F hg branch newfeature-123 hg qpush -a hg qdel -r qbase: qtip
e questo si traduce nel grafico desiderato:
master A --- B --- C --- D --- E --- F
\
nuova funzione-123 M --- N --- O
ma questi comandi (tutti e 6!) sembrano molto più complicati di
$ git rebase master
Voglio sapere se questo è l'unico equivalente in Hg o se è disponibile un altro modo semplice come Git.


git refloge non sono completamente spariti fino a quando non vengono raccolti i rifiuti. Se vuoi tenerli in giro in un ramo con nome in modo da non dover usare il reflog, fallogit branch feature-123_originalprima di ripassare.