[PATCH 1 of 2] largefiles: fix rename (Issue 3093)

Na'Tosha Bard natosha at unity3d.com
Tue Nov 29 09:15:40 CST 2011


# HG changeset patch
# User Na'Tosha Bard <natosha at unity3d.com>
# Date 1322579324 -3600
# Node ID dfe717266e728cb2f780899ad218f3a4fa2a5ee9
# Parent  ad686c818e1c7d5ed0335327321003ba8ea04664
largefiles: fix rename (Issue 3093)

diff -r ad686c818e1c -r dfe717266e72 hgext/largefiles/overrides.py
--- a/hgext/largefiles/overrides.py	Fri Nov 25 02:11:12 2011 +0100
+++ b/hgext/largefiles/overrides.py	Tue Nov 29 16:08:44 2011 +0100
@@ -389,17 +389,18 @@
             lfdirstate = lfutil.openlfdirstate(ui, repo)
             for (src, dest) in copiedfiles:
                 if lfutil.shortname in src and lfutil.shortname in dest:
-                    srclfile = src.replace(lfutil.shortname, '')
-                    destlfile = dest.replace(lfutil.shortname, '')
+                    substr = repo.root + "/" + lfutil.shortname + "/"
+                    srclfile = src.replace(substr, '')
+                    destlfile = dest.replace(substr, '')
                     destlfiledir = os.path.dirname(destlfile) or '.'
                     if not os.path.isdir(destlfiledir):
                         os.makedirs(destlfiledir)
                     if rename:
-                        os.rename(srclfile, destlfile)
-                        lfdirstate.remove(repo.wjoin(srclfile))
+                        os.rename(repo.wjoin(srclfile), repo.wjoin(destlfile))
+                        lfdirstate.remove(srclfile)
                     else:
                         util.copyfile(srclfile, destlfile)
-                    lfdirstate.add(repo.wjoin(destlfile))
+                    lfdirstate.add(destlfile)
             lfdirstate.write()
         except util.Abort, e:
             if str(e) != 'no files to copy':


More information about the Mercurial-devel mailing list