tests/test-hybridencode.py
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Sat, 24 Dec 2011 19:05:35 +0900
branchstable
changeset 15723 1581da01d5c4
parent 12865 4c50552fc9bc
child 17404 81b115385bc7
permissions -rw-r--r--
windows: use normalized path as path to subrepo path to subrepo is used to identify or check location of subrepo. it should be normalized (in "/" delimiter form), because it is also used with narrowmatcher which uses only normalized path even on Windows environment. this patch applies "util.pconvert()" on path to subrepo (called "subpath") to normalize it. for this patch, referers of below were checked. - subrepo.state() - subrepo.itersubrepos() - subrepo.subrepo() - context.sub() - context.substate() typical usecase is: for subpath in ctx.substate: sub = ctx.sub(subpath) ... ctx.substate[subpath] .... in this case, normalization has no side effect, because keys given from substate are used as key itself. other cases shown below also seem to require subpath to be normalized. - path components are joined by "/", in "commands.forget()": for subpath in ctx.substate: subforget[subpath + '/' + fsub] = (fsub, sub) - normalized "file" is used to check below condition, in "commands.revert()", "localrepository.commit()", and "localrepository._checknested()" file in ctx.substate - substate.keys() is passed to dirstate.walk()/status() which use only normalized pathes
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