changeset 17175:f76e2196ee70

merge with stable
author Matt Mackall <mpm@selenic.com>
date Sun, 15 Jul 2012 14:48:50 -0500
parents c621f84dbb35 (current diff) 32b2e6d641e4 (diff)
children 2ab165cf3d8a
files hgext/convert/filemap.py tests/test-convert-filemap.t
diffstat 2 files changed, 37 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/convert/filemap.py	Fri Jul 06 19:34:09 2012 +0200
+++ b/hgext/convert/filemap.py	Sun Jul 15 14:48:50 2012 -0500
@@ -358,12 +358,13 @@
         # original filename in the rev part of the return value.
         changes, copies = self.base.getchanges(rev)
         newnames = {}
-        files = []
+        files = {}
         for f, r in changes:
             newf = self.filemapper(f)
-            if newf:
-                files.append((newf, (f, r)))
+            if newf and (newf != f or newf not in files):
+                files[newf] = (f, r)
                 newnames[f] = newf
+        files = sorted(files.items())
 
         ncopies = {}
         for c in copies:
--- a/tests/test-convert-filemap.t	Fri Jul 06 19:34:09 2012 +0200
+++ b/tests/test-convert-filemap.t	Sun Jul 15 14:48:50 2012 -0500
@@ -376,6 +376,39 @@
   o  0 "addb" files: b
   
 
+filemap rename undoing revision rename
+
+  $ hg init renameundo
+  $ cd renameundo
+  $ echo 1 > a
+  $ echo 1 > c
+  $ hg ci -qAm add
+  $ hg mv -q a b/a
+  $ hg mv -q c b/c
+  $ hg ci -qm rename
+  $ echo 2 > b/a
+  $ echo 2 > b/c
+  $ hg ci -qm modify
+  $ cd ..
+
+  $ echo "rename b ." > renameundo.fmap
+  $ hg convert --filemap renameundo.fmap renameundo renameundo2
+  initializing destination renameundo2 repository
+  scanning source...
+  sorting...
+  converting...
+  2 add
+  1 rename
+  filtering out empty revision
+  repository tip rolled back to revision 0 (undo commit)
+  0 modify
+  $ glog -R renameundo2
+  o  1 "modify" files: a c
+  |
+  o  0 "add" files: a c
+  
+
+
 test merge parents/empty merges pruning
 
   $ glog()