Mercurial > hg
annotate mercurial/mergeutil.py @ 37787:92213f6745ed
rebase: introduce support for automatically rebasing orphan changes
_destautorebase(SRC) is based on the _destrestack(SRC) revset from
fbamend. The supporting _possibledestination function is extracted
from evolve, with minor cleanups.
We've considered some alternatives here:
* This change, but with --auto as the flag name. We're hedging our bets
on this a little in this change so that if this ends up being the wrong
direction we haven't burned the valauble --auto name on rebase.
* --destination auto: I've got reservations about the discoverability of this,
and we don't currently have a good story for a revset alias of sorts that
changes behavior depending on the context in which it's used.
* A "rebase presets" feature, where we could use the currently-an-error
positional argument space for the rebase command to define presets, so that
users could define a 'linearize' preset that specifies
--revision='orphan()-obsolete()' and --dest=_destautoorphanrebase(SRC).
Personally, I find the third option somewhat appealing, but am
hesitant to "spend" the functionality space of positional arguments to
the rebase command. We should revisit the way we expose this
functionality sometime in the 4.7 cycle once we've had a chance to vet
the implementation of the functionality.
Differential Revision: https://phab.mercurial-scm.org/D2668
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 04 Mar 2018 15:29:41 -0500 |
parents | c1149533676b |
children | 2372284d9457 |
rev | line source |
---|---|
30494
c1149533676b
checkunresolved: move to new package to help avoid import cycles
Augie Fackler <augie@google.com>
parents:
30493
diff
changeset
|
1 # mergeutil.py - help for merge processing in mercurial |
2874
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
2 # |
4635
63b9d2deed48
Updated copyright notices and add "and others" to "hg version"
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4633
diff
changeset
|
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
2874
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
4 # |
8225
46293a0c7e9f
updated license to be explicit about GPL version 2
Martin Geisler <mg@lazybytes.net>
parents:
8210
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
10263 | 6 # GNU General Public License version 2 or any later version. |
2874
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
7 |
28322
ebd0e86bdf89
cmdutil: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28313
diff
changeset
|
8 from __future__ import absolute_import |
ebd0e86bdf89
cmdutil: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28313
diff
changeset
|
9 |
ebd0e86bdf89
cmdutil: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28313
diff
changeset
|
10 from .i18n import _ |
ebd0e86bdf89
cmdutil: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28313
diff
changeset
|
11 |
ebd0e86bdf89
cmdutil: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28313
diff
changeset
|
12 from . import ( |
ebd0e86bdf89
cmdutil: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28313
diff
changeset
|
13 error, |
ebd0e86bdf89
cmdutil: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28313
diff
changeset
|
14 ) |
19211
3bfd7f1e7485
summary: augment output with info from extensions
Bryan O'Sullivan <bryano@fb.com>
parents:
19129
diff
changeset
|
15 |
30272
3d38a0bc774f
cmdutil: refactor checkunresolved
timeless <timeless@mozdev.org>
parents:
30182
diff
changeset
|
16 def checkunresolved(ms): |
3d38a0bc774f
cmdutil: refactor checkunresolved
timeless <timeless@mozdev.org>
parents:
30182
diff
changeset
|
17 if list(ms.unresolved()): |
3d38a0bc774f
cmdutil: refactor checkunresolved
timeless <timeless@mozdev.org>
parents:
30182
diff
changeset
|
18 raise error.Abort(_("unresolved merge conflicts " |
3d38a0bc774f
cmdutil: refactor checkunresolved
timeless <timeless@mozdev.org>
parents:
30182
diff
changeset
|
19 "(see 'hg help resolve')")) |
3d38a0bc774f
cmdutil: refactor checkunresolved
timeless <timeless@mozdev.org>
parents:
30182
diff
changeset
|
20 if ms.mdstate() != 's' or list(ms.driverresolved()): |
3d38a0bc774f
cmdutil: refactor checkunresolved
timeless <timeless@mozdev.org>
parents:
30182
diff
changeset
|
21 raise error.Abort(_('driver-resolved merge conflicts'), |
3d38a0bc774f
cmdutil: refactor checkunresolved
timeless <timeless@mozdev.org>
parents:
30182
diff
changeset
|
22 hint=_('run "hg resolve --all" to resolve')) |