tests/test-hybridencode.py
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Sat, 31 Mar 2012 00:04:08 +0900
branchstable
changeset 16313 e785456f9631
parent 12865 4c50552fc9bc
child 17404 81b115385bc7
permissions -rw-r--r--
dirstate: avoid normalizing letter case on icasefs for exact match (issue3340) on icasefs, "hg qnew" fails to import changing letter case of filename already occurred in working directory, for example: $ hg rename a tmp $ hg rename tmp A $ hg qnew casechange $ hg status R a $ "hg qnew" invokes 'dirstate.walk()' via 'localrepository.commit()' with 'exact match' matching object having exact filenames of targets in ones 'files()'. current implementation of 'dirstate.walk()' always normalizes letter case of filenames from 'match.files()' on icasefs, even though exact matching is required. then, files only different in letter case are treated as one file. this patch prevents 'dirstate.walk()' from normalizing, if exact matching is required, even on icasefs. filenames for 'exact matching' are given not from user command line, but from dirstate walk result, manifest of changecontext, patch files or fixed list for specific system files (e.g.: '.hgtags'). in such case, case normalization should not be done, so this patch works well.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7275
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
     1
from mercurial import store
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
     2
12687
34d8247a4595 store: encode first period or space in filenames (issue1713)
Adrian Buehlmann <adrian@cadifra.com>
parents: 8659
diff changeset
     3
auxencode = lambda f: store._auxencode(f, True)
34d8247a4595 store: encode first period or space in filenames (issue1713)
Adrian Buehlmann <adrian@cadifra.com>
parents: 8659
diff changeset
     4
hybridencode = lambda f: store._hybridencode(f, auxencode)
34d8247a4595 store: encode first period or space in filenames (issue1713)
Adrian Buehlmann <adrian@cadifra.com>
parents: 8659
diff changeset
     5
34d8247a4595 store: encode first period or space in filenames (issue1713)
Adrian Buehlmann <adrian@cadifra.com>
parents: 8659
diff changeset
     6
enc = hybridencode # used for 'dotencode' repo format
7275
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
     7
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
     8
def show(s):
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
     9
    print "A = '%s'" % s
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    10
    print "B = '%s'" % enc(s)
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    11
    print
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    12
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    13
show('data/aux.bla/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c.i')
c00cdac22d3c add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    14
8659
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    15
show('data/AUX/SECOND/X.PRN/FOURTH/FI:FTH/SIXTH/SEVENTH/EIGHTH/NINETH/'
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    16
     'TENTH/ELEVENTH/LOREMIPSUM.TXT.i')
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    17
show('data/enterprise/openesbaddons/contrib-imola/corba-bc/netbeansplugin/'
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    18
     'wsdlExtension/src/main/java/META-INF/services/org.netbeans.modules'
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    19
     '.xml.wsdl.bindingsupport.spi.ExtensibilityElementTemplateProvider.i')
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    20
show('data/AUX.THE-QUICK-BROWN-FOX-JU:MPS-OVER-THE-LAZY-DOG-THE-QUICK-'
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    21
     'BROWN-FOX-JUMPS-OVER-THE-LAZY-DOG.TXT.i')
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    22
show('data/Project Planning/Resources/AnotherLongDirectoryName/'
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    23
     'Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt')
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    24
show('data/Project.Planning/Resources/AnotherLongDirectoryName/'
1a6d702e059d test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents: 7515
diff changeset
    25
     'Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt')
12687
34d8247a4595 store: encode first period or space in filenames (issue1713)
Adrian Buehlmann <adrian@cadifra.com>
parents: 8659
diff changeset
    26
show('data/foo.../foo   / /a./_. /__/.x../    bla/.FOO/something.i')
34d8247a4595 store: encode first period or space in filenames (issue1713)
Adrian Buehlmann <adrian@cadifra.com>
parents: 8659
diff changeset
    27