histedit: allow configuring default behavior
authorDurham Goode <durham@fb.com>
Mon, 02 Feb 2015 16:19:35 -0800
changeset 24009 00d331763442
parent 24007 240343e13c4d
child 24010 a63c2b159df4
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.
hgext/histedit.py
tests/test-histedit-arguments.t
--- 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
 --------------------------------------------------------------------