##// END OF EJS Templates
match: fix a caseonly rename + explicit path commit on icasefs (issue4768)...
Matt Harbison -
r26000:9ac4e81b stable
parent child Browse files
Show More
@@ -386,7 +386,8 b' class icasefsmatcher(match):'
386 def __init__(self, root, cwd, patterns, include, exclude, default, auditor,
386 def __init__(self, root, cwd, patterns, include, exclude, default, auditor,
387 ctx, listsubrepos=False, badfn=None):
387 ctx, listsubrepos=False, badfn=None):
388 init = super(icasefsmatcher, self).__init__
388 init = super(icasefsmatcher, self).__init__
389 self._dsnormalize = ctx.repo().dirstate.normalize
389 self._dirstate = ctx.repo().dirstate
390 self._dsnormalize = self._dirstate.normalize
390
391
391 init(root, cwd, patterns, include, exclude, default, auditor=auditor,
392 init(root, cwd, patterns, include, exclude, default, auditor=auditor,
392 ctx=ctx, listsubrepos=listsubrepos, badfn=badfn)
393 ctx=ctx, listsubrepos=listsubrepos, badfn=badfn)
@@ -402,7 +403,13 b' class icasefsmatcher(match):'
402 kindpats = []
403 kindpats = []
403 for kind, pats, source in self._kp:
404 for kind, pats, source in self._kp:
404 if kind not in ('re', 'relre'): # regex can't be normalized
405 if kind not in ('re', 'relre'): # regex can't be normalized
406 p = pats
405 pats = self._dsnormalize(pats)
407 pats = self._dsnormalize(pats)
408
409 # Preserve the original to handle a case only rename.
410 if p != pats and p in self._dirstate:
411 kindpats.append((kind, p, source))
412
406 kindpats.append((kind, pats, source))
413 kindpats.append((kind, pats, source))
407 return kindpats
414 return kindpats
408
415
@@ -232,9 +232,17 b' and OS X'
232 -xyz
232 -xyz
233 +def
233 +def
234
234
235 $ hg mv CapsDir1/CapsDir/abc.txt CapsDir1/CapsDir/ABC.txt
236 moving CapsDir1/CapsDir/AbC.txt to CapsDir1/CapsDir/ABC.txt (glob)
237 $ hg ci -m "case changing rename" CapsDir1/CapsDir/AbC.txt CapsDir1/CapsDir/ABC.txt
238
239 $ hg status -A capsdir1/capsdir
240 M CapsDir1/CapsDir/SubDir/Def.txt
241 C CapsDir1/CapsDir/ABC.txt
242
235 $ hg remove -f 'glob:**.txt' -X capsdir1/capsdir
243 $ hg remove -f 'glob:**.txt' -X capsdir1/capsdir
236 $ hg remove -f 'glob:**.txt' -I capsdir1/capsdir
244 $ hg remove -f 'glob:**.txt' -I capsdir1/capsdir
237 removing CapsDir1/CapsDir/AbC.txt (glob)
245 removing CapsDir1/CapsDir/ABC.txt (glob)
238 removing CapsDir1/CapsDir/SubDir/Def.txt (glob)
246 removing CapsDir1/CapsDir/SubDir/Def.txt (glob)
239 #endif
247 #endif
240
248
General Comments 0
You need to be logged in to leave comments. Login now