view tests/test-commit-copy.t @ 14980:28e98a8b173d stable

i18n: use UTF-8 string to lower filename for case collision check Some character sets, cp932 (known as Shift-JIS for Japanese) for example, use 0x41('A') - 0x5A('Z') and 0x61('a') - 0x7A('z') as second or later character. In such character set, case collision checking recognizes different files as CASEFOLDED same file, if filenames are treated as byte sequence. win32mbcs extension is not appropriate to handle this problem, because this problem can occur on other than Windows platform only if problematic character set is used. Callers of util.checkcase() use known ASCII filenames as last component of path, and string.lower() is not applied to directory part of path. So, util.checkcase() is kept intact, even though it applies string.lower() to filenames.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Thu, 28 Jul 2011 14:36:07 +0900
parents ec5886db9dc6
children
line wrap: on
line source

  $ hg init dir
  $ cd dir
  $ echo bleh > bar
  $ hg add bar
  $ hg ci -m 'add bar'

  $ hg cp bar foo
  $ echo >> bar
  $ hg ci -m 'cp bar foo; change bar'

  $ hg debugrename foo
  foo renamed from bar:26d3ca0dfd18e44d796b564e38dd173c9668d3a9
  $ hg debugindex bar
     rev    offset  length   base linkrev nodeid       p1           p2
       0         0       6      0       0 26d3ca0dfd18 000000000000 000000000000
       1         6       7      1       1 d267bddd54f7 26d3ca0dfd18 000000000000