diff hgext/mq.py @ 15322:c8e2a5ea7062 stable

mq: avoid data loss upon qfold + qmv (issue3058) When renaming a patch A as B where B was previously qfolded into A and therefore marked as removed, a versioned MQ would first restore B before marking it as a copy of A, thus losing A changes. The undelete() call is probably a left-over, wctx.copy() explicitely handles the case where the destination is removed. Also note that status command represents "hg rm b; hg mv a b" as: A b a R a which explains the first hunk in test-mq-qrename.t.
author Patrick Mezard <pmezard@gmail.com>
date Thu, 20 Oct 2011 16:43:31 +0200
parents fe9677449331
children 7c06e9c35f2f e6c44dbe902f
line wrap: on
line diff
--- a/hgext/mq.py	Fri Oct 21 00:33:08 2011 +0200
+++ b/hgext/mq.py	Thu Oct 20 16:43:31 2011 +0200
@@ -2614,8 +2614,6 @@
                 r.dirstate.drop(patch)
                 r.dirstate.add(name)
             else:
-                if r.dirstate[name] == 'r':
-                    wctx.undelete([name])
                 wctx.copy(patch, name)
                 wctx.forget([patch])
         finally: