##// END OF EJS Templates
merge: abort on file/directory case folding collisions (issue4892)...
Mads Kiilerich -
r26661:2b955fec default
parent child Browse files
Show More
@@ -478,6 +478,17 b' def _checkcollision(repo, wmf, actions):'
478 % (f, foldmap[fold]))
478 % (f, foldmap[fold]))
479 foldmap[fold] = f
479 foldmap[fold] = f
480
480
481 # check case-folding of directories
482 foldprefix = unfoldprefix = lastfull = ''
483 for fold, f in sorted(foldmap.items()):
484 if fold.startswith(foldprefix) and not f.startswith(unfoldprefix):
485 # the folded prefix matches but actual casing is different
486 raise error.Abort(_("case-folding collision between "
487 "%s and directory of %s") % (lastfull, f))
488 foldprefix = fold + '/'
489 unfoldprefix = f + '/'
490 lastfull = f
491
481 def manifestmerge(repo, wctx, p2, pa, branchmerge, force, partial,
492 def manifestmerge(repo, wctx, p2, pa, branchmerge, force, partial,
482 acceptremote, followcopies):
493 acceptremote, followcopies):
483 """
494 """
@@ -212,7 +212,7 b' Directory/file case-folding collision:'
212 $ hg ci -Aqm1
212 $ hg ci -Aqm1
213
213
214 $ hg merge 0
214 $ hg merge 0
215 abort: Not a directory: '$TESTTMP/directory-casing/aA/a'
215 abort: case-folding collision between Aa and directory of aA/a
216 [255]
216 [255]
217 (note: no collision between 0 and 00 or 000/f)
217 (note: no collision between 0 and 00 or 000/f)
218
218
General Comments 0
You need to be logged in to leave comments. Login now