Mercurial > public > mercurial-scm > hg-stable
diff hgext/rebase.py @ 27746:f0e9f38d250f
rebase: prevent creating divergence
Before this patch rebase would create divergence when you were rebasing obsolete
changesets on a destination not containing one of its successors.
This patch introduces rebase.allowdivergence to explicitly allow
divergence creation with rebase.
author | Laurent Charignon <lcharignon@fb.com> |
---|---|
date | Tue, 12 Jan 2016 13:43:41 -0800 |
parents | d3a128e8604a |
children | 2d294dada4f8 |
line wrap: on
line diff
--- a/hgext/rebase.py Wed Jan 06 12:55:56 2016 -0800 +++ b/hgext/rebase.py Tue Jan 12 13:43:41 2016 -0800 @@ -350,6 +350,17 @@ dest) rebaseobsskipped = set(obsoletenotrebased) + # Obsolete node with successors not in dest leads to divergence + divergenceok = ui.configbool('rebase', + 'allowdivergence') + divergencebasecandidates = rebaseobsrevs - rebaseobsskipped + + if divergencebasecandidates and not divergenceok: + msg = _("this rebase will cause divergence") + h = _("to force the rebase please set " + "rebase.allowdivergence=True") + raise error.Abort(msg, hint=h) + # - plain prune (no successor) changesets are rebased # - split changesets are not rebased if at least one of the # changeset resulting from the split is an ancestor of dest