Mercurial > public > mercurial-scm > hg-stable
diff hgext/rebase.py @ 29044:261c25372959 stable
rebase: restrict rebase destination to the pulled set (issue5214)
Before this patch, `hg pull --rebase` would be a strict sequence of `hg pull`
followed by `hg rebase` if anything was pulled.
Now that rebase pick his default destination the same way than merge, than
`hg rebase` step would abort in the case the repo already had multiple anonymous
heads (because of the ambiguity). (changed in fac3a24be50e)
The intend of the user with `hg pull --rebase` is clearly to rebase on pulled
content. This used to be (mostly) enforced by the former default destination for
rebase, "tipmost changeset of the branch" as the tipmost would likely a
changeset that just got pulled. But this intended was no longer enforced with
the new defaul destination (unified with merge).
This changeset makes use of the '_destspace' mechanism introduced in the previous
changeset to enforce this.
This partially fixes issue5214 as no change at all have been made to the new
handling of the case with bookmark (unified with merge).
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Sat, 30 Apr 2016 18:39:39 +0200 |
parents | cf7de4aeb86b |
children | 8ede973597fd |
line wrap: on
line diff
--- a/hgext/rebase.py Sat Apr 30 18:41:08 2016 +0200 +++ b/hgext/rebase.py Sat Apr 30 18:39:39 2016 +0200 @@ -1244,6 +1244,9 @@ # --source. if 'source' in opts: del opts['source'] + # revsprepull is the len of the repo, not revnum of tip. + destspace = list(repo.changelog.revs(start=revsprepull)) + opts['_destspace'] = destspace try: rebase(ui, repo, **opts) except error.NoMergeDestAbort: