changeset 17766:d9da327516f8

histedit: clean abort when there is nothing to edit
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Sun, 14 Oct 2012 23:58:02 +0200
parents ef7760f0be87
children a787e46d3b94
files hgext/histedit.py tests/test-histedit-revspec.t
diffstat 2 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/histedit.py	Mon Oct 15 00:05:16 2012 +0200
+++ b/hgext/histedit.py	Sun Oct 14 23:58:02 2012 +0200
@@ -455,6 +455,9 @@
 
         keep = opts.get('keep', False)
         revs = between(repo, parent, topmost, keep)
+        if not revs:
+            ui.warn(_('nothing to edit\n'))
+            return 1
 
         ctxs = [repo[r] for r in revs]
         rules = opts.get('commands', '')
@@ -588,7 +591,7 @@
 
     When keep is false, the specified set can't have children."""
     ctxs = list(repo.set('%n::%n', old, new))
-    if not keep:
+    if ctxs and not keep:
         if repo.revs('(%ld::) - (%ld + hidden())', ctxs, ctxs):
             raise util.Abort(_('cannot edit history that would orphan nodes'))
         root = min(ctxs)
--- a/tests/test-histedit-revspec.t	Mon Oct 15 00:05:16 2012 +0200
+++ b/tests/test-histedit-revspec.t	Sun Oct 14 23:58:02 2012 +0200
@@ -60,3 +60,10 @@
   #
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
+Run on a revision not ancestors of the current working directory.
+
+  $ hg up 2
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg histedit -r 4
+  nothing to edit
+  [1]