diff mercurial/localrepo.py @ 3733:9e67fecbfd16

merge: handle directory renames commit: handle new copy dirstate case correctly findcopies: keep a map of all copies found for directory logic add dirs filter check for merge:followdirs config option generate a directory move map find files that match directory move map manifestmerge: add directory rename cases applyupdates: skip actions with None file add "d" action recordupdates: add "d" action add simple directory rename test
author Matt Mackall <mpm@selenic.com>
date Thu, 30 Nov 2006 17:36:33 -0600
parents 98f2507c5551
children 9433bdcaa9ae
line wrap: on
line diff
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -553,9 +553,11 @@ class localrepository(repo.repository):
                 fp2 = nullid
             elif fp2 != nullid: # copied on remote side
                 meta["copyrev"] = hex(manifest1.get(cp, nullid))
-            else: # copied on local side, reversed
+            elif fp1 != nullid: # copied on local side, reversed
                 meta["copyrev"] = hex(manifest2.get(cp))
                 fp2 = nullid
+            else: # directory rename
+                meta["copyrev"] = hex(manifest1.get(cp, nullid))
             self.ui.debug(_(" %s: copy %s:%s\n") %
                           (fn, cp, meta["copyrev"]))
             fp1 = nullid