В Git я могу сделать это:
1. Start working on new feature:
$ git co -b newfeature-123 # (a local feature development branch)
do a few commits (M, N, O)
master A---B---C
\
newfeature-123 M---N---O
2. Pull new changes from upstream master:
$ git pull
(master updated with ff-commits)
master A---B---C---D---E---F
\
newfeature-123 M---N---O
3. Rebase off master so that my new feature
can be developed against the latest upstream changes:
(from newfeature-123)
$ git rebase master
master A---B---C---D---E---F
\
newfeature-123 M---N---O
Я хочу знать, как сделать то же самое в Mercurial, и я поискал в Интернете ответ, но лучшее, что я смог найти, было: git rebase - может hg это сделать?
Эта ссылка содержит 2 примера:
1. Я признаю, что это: (заменяя исправления из примера на те из моего собственного примера)
hg up -C F hg branch -f newfeature-123 hg transplant -a -b newfeature-123
не так уж и плохо, за исключением того, что он оставляет после перебазирования M-N-O в качестве не объединенной головы и создает 3 новых коммита M ', N', O ', которые представляют их ответвления от обновленной основной линии.
В основном проблема в том, что я получаю следующее:
master A---B---C---D---E---F
\ \
newfeature-123 \ M'---N'---O'
\
newfeature-123 M---N---O
это нехорошо, потому что оставляет после себя локальные нежелательные коммиты, которые следует отбросить.
- Другой вариант по той же ссылке -
hg qimport -r M:O hg qpop -a hg up F hg branch newfeature-123 hg qpush -a hg qdel -r qbase:qtip
и это приводит к желаемому графику:
master A---B---C---D---E---F
\
newfeature-123 M---N---O
но эти команды (всего их 6!) кажутся намного сложнее, чем
$ git rebase master
Я хочу знать, является ли это единственным эквивалентом в Hg или существует другой способ, более простой, чем Git.


git reflog, и они не исчезнут полностью, пока не будут собраны сборщиком мусора. Если вы хотите сохранить их в именованной ветке, чтобы вам не приходилось использовать журнал ссылок, просто сделайтеgit branch feature-123_originalперед перебазированием. - person MatrixFrog   schedule 24.12.2010--keepbranches. Если вы используете TortoiseHg, для этого есть переключатель в диалоговом окне переустановки. - person Rainer Schwarze   schedule 08.11.2020