changeset 1880:c3741a5adbb0 stable

fold: cleanly abort on empty fold set (issue5453) We now handle the empty set case, cleanly aborting instead of crashing with a traceback. The message used match the output of 'hg push' in similar situation.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Wed, 25 Jan 2017 16:40:45 +0100
parents e7149cc5101f
children f22120b12715 b674277ea4ef
files README hgext/evolve.py tests/test-evolve.t
diffstat 3 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/README
+++ b/README
@@ -56,6 +56,10 @@
 Changelog
 =========
 
+5.5.1 --
+
+ - fix crash when trying to fold an empty revision set (issue5453)
+
 5.5.0 -- 2016-10-30
 
  - The {obsolete} template now yield "obsolete" or "".
--- a/hgext/evolve.py
+++ b/hgext/evolve.py
@@ -3124,7 +3124,10 @@
                                       "of working directory"))
         revs = extrevs
 
-    if len(revs) == 1:
+    if not revs:
+        raise error.Abort(_('specified revisions evaluate to an empty set'),
+                          hint=_('use different revision arguments'))
+    elif len(revs) == 1:
         ui.write_err(_('single revision specified, nothing to fold\n'))
         return 1
 
--- a/tests/test-evolve.t
+++ b/tests/test-evolve.t
@@ -688,6 +688,10 @@
   $ hg fold -r 4 -r 6 --exact
   abort: cannot fold non-linear revisions (multiple roots given)
   [255]
+  $ hg fold --exact -r "4 and not 4"
+  abort: specified revisions evaluate to an empty set
+  (use different revision arguments)
+  [255]
   $ hg fold 10 1
   abort: cannot fold non-linear revisions
   (given revisions are unrelated to parent of working directory)