revset: factorize backup decision
authorPierre-Yves David <pierre-yves.david@fb.com>
Tue, 24 Jun 2014 17:54:33 +0100
changeset 22230 316ba2ddc034
parent 22229 3a7b45a0bd20
child 22231 10d9e7908a3c
revset: factorize backup decision The conditional controlling the creation of backup is fairly big. We move config related decisions outside of the loop.
mercurial/cmdutil.py
--- a/mercurial/cmdutil.py	Tue Jun 24 17:44:31 2014 +0100
+++ b/mercurial/cmdutil.py	Tue Jun 24 17:54:33 2014 +0100
@@ -2471,17 +2471,22 @@
                    'remove': ([], removeforget),
                    'undelete': ([], _('undeleting %s\n'))}
 
+
+        # should we do a backup?
+        backup = not opts.get('no_backup')
+        discard = False
+
         disptable = (
             # dispatch table:
             #   file state
             #   action
             #   make backup
-            (modified,   actions['revert'],   False),
-            (dsmodified, actions['revert'],   True),
-            (dsadded,    actions['remove'],   True),
-            (removed,    actions['add'],      True),
-            (dsremoved,  actions['undelete'], True),
-            (clean,      None,                False),
+            (modified,   actions['revert'],   discard),
+            (dsmodified, actions['revert'],   backup),
+            (dsadded,    actions['remove'],   backup),
+            (removed,    actions['add'],      backup),
+            (dsremoved,  actions['undelete'], backup),
+            (clean,      None,                discard),
             )
 
         for abs, (rel, exact) in sorted(names.items()):
@@ -2498,8 +2503,7 @@
                         ui.warn(_('no changes needed to %s\n') % rel)
                     break
                 xlist[0].append(abs)
-                if (dobackup and not opts.get('no_backup') and
-                    os.path.lexists(target) and
+                if (dobackup and os.path.lexists(target) and
                     abs in ctx and repo[None][abs].cmp(ctx[abs])):
                     bakname = "%s.orig" % rel
                     ui.note(_('saving current version of %s as %s\n') %