changeset 20148:7ac03bfa1369 stable

largefiles: don't crash on 'local renamed directory' actions a12798938721 introduced splitstandin on all action filenames. It would however crash on 'd' actions where the filename is None. Fix that and add test coverage for that case.
author Mads Kiilerich <madski@unity3d.com>
date Tue, 26 Nov 2013 15:38:33 +0100
parents 7547bcc1a3ad
children 578b888c820e
files hgext/largefiles/overrides.py tests/test-largefiles.t
diffstat 2 files changed, 34 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/largefiles/overrides.py	Fri Nov 22 19:13:07 2013 +0100
+++ b/hgext/largefiles/overrides.py	Tue Nov 26 15:38:33 2013 +0100
@@ -380,7 +380,7 @@
     for action in actions:
         f, m, args, msg = action
 
-        splitstandin = lfutil.splitstandin(f)
+        splitstandin = f and lfutil.splitstandin(f)
         if (m == "g" and splitstandin is not None and
             splitstandin in p1 and splitstandin not in removes):
             # Case 1: normal file in the working copy, largefile in
--- a/tests/test-largefiles.t	Fri Nov 22 19:13:07 2013 +0100
+++ b/tests/test-largefiles.t	Tue Nov 26 15:38:33 2013 +0100
@@ -2192,6 +2192,39 @@
 
   $ cd ..
 
+merge action 'd' for 'local renamed directory to d2/g' which has no filename
+
+  $ hg init merge-action
+  $ cd merge-action
+  $ touch l
+  $ hg add --large l
+  $ mkdir d1
+  $ touch d1/f
+  $ hg ci -Aqm0
+  Invoking status precommit hook
+  A d1/f
+  A l
+  $ echo > d1/f
+  $ touch d1/g
+  $ hg ci -Aqm1
+  Invoking status precommit hook
+  M d1/f
+  A d1/g
+  $ hg up -qr0
+  $ hg mv d1 d2
+  moving d1/f to d2/f (glob)
+  $ hg ci -qm2
+  Invoking status precommit hook
+  A d2/f
+  R d1/f
+  $ hg merge
+  merging d2/f and d1/f to d2/f
+  1 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+  getting changed largefiles
+  0 largefiles updated, 0 removed
+  $ cd ..
+
 Check whether "largefiles" feature is supported only in repositories
 enabling largefiles extension.