histedit: allow configuring default behavior
Adds a configuration setting for allowing users to specify the default behavior
of 'hg histedit' without arguments. This saves users from having to manually
figure out the bottom commit or a complicated revset. My current revset of
choice is "only(.) & draft() - ::merge()"
The commits that histedit can work with is usually quite limited, so if this
feature ends up working well, we may want to consider making "only(.) & draft()
- ::merge()" the default behavior for everyone.
--- a/hgext/histedit.py Sun Feb 01 14:05:15 2015 -0500
+++ b/hgext/histedit.py Mon Feb 02 16:19:35 2015 -0800
@@ -579,6 +579,10 @@
_('only one repo argument allowed with --outgoing'))
else:
revs.extend(freeargs)
+ if len(revs) == 0:
+ histeditdefault = ui.config('histedit', 'defaultrev')
+ if histeditdefault:
+ revs.append(histeditdefault)
if len(revs) != 1:
raise util.Abort(
_('histedit requires exactly one ancestor revision'))
--- a/tests/test-histedit-arguments.t Sun Feb 01 14:05:15 2015 -0500
+++ b/tests/test-histedit-arguments.t Mon Feb 02 16:19:35 2015 -0800
@@ -103,6 +103,15 @@
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg up --quiet
+Test config specified default
+-----------------------------
+
+ $ HGEDITOR=cat hg histedit --config "histedit.defaultrev=only(.) - ::eb57da33312f" --commands - << EOF
+ > pick c8e68270e35a 3 four
+ > pick 08d98a8350f3 4 five
+ > EOF
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
Run on a revision not descendants of the initial parent
--------------------------------------------------------------------