changeset 19161:24877c50aada stable

largefiles: check unknown files with case awareness of the filesystem Before this patch, largefiles extension checks unknown files in the working directory always case sensitively. This causes failure in updating from the revision X consisting of '.hglf/A' (and "A" implicitly) to the revision Y consisting of 'a' (not ".hglf/A") on case insensitive filesystem, because "A" in the working directory is treated as colliding against and different from 'a' on the revision Y. This patch uses "repo.dirstate.normalize()" to check unknown files with case awareness of the filesystem.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Tue, 07 May 2013 05:04:11 +0900
parents 0848be1f1aad
children 27013ace80eb
files hgext/largefiles/overrides.py tests/test-casefolding.t
diffstat 2 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/largefiles/overrides.py	Tue May 07 05:04:11 2013 +0900
+++ b/hgext/largefiles/overrides.py	Tue May 07 05:04:11 2013 +0900
@@ -333,7 +333,7 @@
 # largefiles. This makes the merge proceed and we can then handle this
 # case further in the overridden manifestmerge function below.
 def overridecheckunknownfile(origfn, repo, wctx, mctx, f):
-    if lfutil.standin(f) in wctx:
+    if lfutil.standin(repo.dirstate.normalize(f)) in wctx:
         return False
     return origfn(repo, wctx, mctx, f)
 
--- a/tests/test-casefolding.t	Tue May 07 05:04:11 2013 +0900
+++ b/tests/test-casefolding.t	Tue May 07 05:04:11 2013 +0900
@@ -128,6 +128,8 @@
   $ hg update -q -C 0
   $ hg status -A
   C a
+  $ hg update -q -C 3
+  $ hg update -q 0
 
   $ cd ..