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

mail settings
Submitter Pierre-Yves David
Date Sept. 4, 2014, 6:33 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/5701/
State Superseded
Headers show


Pierre-Yves David - Sept. 4, 2014, 6:33 p.m.
# HG changeset patch
# User Pierre-Yves David <>
# 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/ b/mercurial/
--- a/mercurial/
+++ b/mercurial/
@@ -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)