Dans Git, je peux le faire:
1. Commencez à travailler sur une nouvelle fonctionnalité: $ git co -b newfeature-123 # (une branche de développement de fonctionnalités locales) faire quelques commits (M, N, O) maître A --- B --- C \ nouveaut é-123 M --- N --- O 2. Tirez les nouvelles modifications du maître en amont: $ git pull (maître mis à jour avec ff-commits) maître A --- B --- C --- D --- E --- F \ nouveaut é-123 M --- N --- O 3. Rebase off master afin que ma nouvelle fonctionnalité peut être développé contre les derniers changements en amont: (à partir de newfeature-123) $ git rebase master maître A --- B --- C --- D --- E --- F \ nouveaut é-123 M --- N --- O
Je veux savoir comment faire la même chose dans Mercurial, et j'ai parcouru le Web pour trouver une réponse, mais le meilleur que j'ai pu trouver était: git rebase - can hg do that
Ce lien fournit 2 exemples:
1. J'admets que ceci: (en remplaçant les révisions de l'exemple par celles de mon propre exemple)
hg up -CF hg branch -f newfeature-123 greffe de hg -a -b nouveauté-123
n'est pas trop mal, sauf qu'il laisse derrière le MNO pré-rebase en tant que tête non fusionnée et crée 3 nouveaux commits M ', N', O 'qui les représentent se ramifiant de la ligne principale mise à jour.
Fondamentalement, le problème est que je me retrouve avec ceci:
maître A --- B --- C --- D --- E --- F \ \ newfeature-123 \ M '--- N' --- O ' \ nouveaut é-123 M --- N --- O
ce n'est pas bon car cela laisse des commits locaux et indésirables qui devraient être supprimés.
- L'autre option du même lien est
hg qimport -r M: O hg qpop -a hg up F hg branch newfeature-123 hg qpush -a hg qdel -r qbase: qtip
et cela donne le graphique souhaité:
maître A --- B --- C --- D --- E --- F \ nouveaut é-123 M --- N --- O
mais ces commandes (toutes les 6!) semblent tellement plus compliquées que
$ git rebase master
Je veux savoir si c'est le seul équivalent en Hg ou s'il existe une autre méthode disponible aussi simple que Git.
git reflog
et ils ne sont pas totalement partis tant qu'ils n'ont pas récupéré les ordures. Si vous souhaitez les conserver dans une branche nommée afin de ne pas avoir à utiliser le reflog, faites-legit branch feature-123_original
avant de rebaser.