[PATCH 4 of 5] revert: no backup for `dsadded` set

Pierre-Yves David pierre-yves.david at ens-lyon.org
Thu Sep 4 13:33:22 CDT 2014

# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1409356168 -7200
#      Sat Aug 30 01:49:28 2014 +0200
# Node ID 177a07088af45a1b94773f56d985423fd402c3fa
# Parent  44dbbc50f939e9656dae206f6f64f378db115790
revert: no backup for `dsadded` set

There are only one case where backup is required in the `dsadded` set. And the
current backup mechanism fails to backup it. So we stop trying to do backup at
all for now. This will helps us to simplifies the backup code and finally fix
this backup issue.

diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -2523,11 +2523,11 @@ def revert(ui, repo, ctx, parents, *pats
             # Modified compared to target, no local change
             (modified,      actions['revert'],   discard),
             # Modified compared to target, local change
             (dsmodified,    actions['revert'],   backup),
             # Added since target
-            (dsadded,       actions['remove'],   backup),
+            (dsadded,       actions['remove'],   discard),
             # Removed since  target, before working copy parent
             (removed,       actions['add'],      backup),
             # Removed since targe, marked as such in working copy parent
             (dsremoved,     actions['undelete'], backup),
             ## the following sets does not result in any file changes
@@ -2535,11 +2535,11 @@ def revert(ui, repo, ctx, parents, *pats
             (clean,         actions['noop'],     discard),
             # Existing file, not tracked anywhere
             (unknown,       actions['unknown'],  discard),
-        needdata = ('revert', 'add', 'remove', 'undelete')
+        needdata = ('revert', 'add', 'undelete')
         _revertprefetch(ctx, *[actions[name][0] for name in needdata])
         for abs, (rel, exact) in sorted(names.items()):
             # target file to be touch on disk (relative to cwd)
             target = repo.wjoin(abs)

More information about the Mercurial-devel mailing list