[PATCH v2] histedit: select the lowest rev when looking for a root in a revset
David Soria Parra
davidsp at fb.com
Wed Mar 19 13:32:19 CDT 2014
# HG changeset patch
# User David Soria Parra <davidsp at fb.com>
# Date 1394751906 25200
# Thu Mar 13 16:05:06 2014 -0700
# Node ID cd5d791af790d7a8bac50ebf4a66e71f1b51a25b
# Parent c152e538b85b099ce20b51104b8b7dd3666aad7c
histedit: select the lowest rev when looking for a root in a revset
When we specify a revision or a revset we just get the last element from the
list. For revsets this can lead to unintended effects where you specify a
revset like only() but instead histedit selects the highest revision in the
set as root. Therefore we should always use the lowest revision number as
root.
diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -565,8 +565,11 @@
remote = None
root = findoutgoing(ui, repo, remote, force, opts)
else:
- root = revs[0]
- root = scmutil.revsingle(repo, root).node()
+ rev = '.'
+ revrange = scmutil.revrange(repo, [revs[0]])
+ if len(revrange) > 0:
+ rev = sorted(revrange)[0]
+ root = repo[rev].node()
keep = opts.get('keep', False)
revs = between(repo, root, topmost, keep)
diff --git a/tests/test-histedit-arguments.t b/tests/test-histedit-arguments.t
--- a/tests/test-histedit-arguments.t
+++ b/tests/test-histedit-arguments.t
@@ -72,6 +72,26 @@
[255]
$ hg up --quiet
+
+Test that we pick the minimum of a revrange
+---------------------------------------
+
+ $ HGEDITOR=cat hg histedit '2::' --commands - << EOF
+ > pick eb57da33312f 2 three
+ > pick c8e68270e35a 3 four
+ > pick 08d98a8350f3 4 five
+ > EOF
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg up --quiet
+
+ $ HGEDITOR=cat hg histedit 'tip:2' --commands - << EOF
+ > pick eb57da33312f 2 three
+ > pick c8e68270e35a 3 four
+ > pick 08d98a8350f3 4 five
+ > EOF
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg up --quiet
+
Run on a revision not descendants of the initial parent
--------------------------------------------------------------------
More information about the Mercurial-devel
mailing list