##// END OF EJS Templates
archive: set date to 1980 for very old zip files...
archive: set date to 1980 for very old zip files The zip file format stores the date using "MS-DOS format" which apparently means that they use 1980 as their epoch. Python's zipfile module emits deprecation warnings of this form /usr/lib/python2.6/zipfile.py:1108: DeprecationWarning: struct integer overflow masking is deprecated self.fp.write(zinfo.FileHeader()) /usr/lib/python2.6/zipfile.py:1108: DeprecationWarning: 'H' format requires 0 <= number <= 65535 self.fp.write(zinfo.FileHeader()) /home/mg/src/mercurial-crew/mercurial/archival.py:169: DeprecationWarning: struct integer overflow masking is deprecated self.z.close() /home/mg/src/mercurial-crew/mercurial/archival.py:169: DeprecationWarning: 'H' format requires 0 <= number <= 65535 self.z.close() when it is given such old timestamps. This fixes this by silently clamping the date to 1980.

File last commit:

r12156:4c94b6d0 default
r12319:381f1312 stable
Show More
test-encoding-align
127 lines | 2.5 KiB | text/plain | TextLexer
#!/bin/sh
########################################
HGENCODING=utf-8
export HGENCODING
hg init t
cd t
python << EOF
# (byte, width) = (6, 4)
s = "\xe7\x9f\xad\xe5\x90\x8d"
# (byte, width) = (7, 7): odd width is good for alignment test
m = "MIDDLE_"
# (byte, width) = (18, 12)
l = "\xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d"
f = file('s', 'w'); f.write(s); f.close()
f = file('m', 'w'); f.write(m); f.close()
f = file('l', 'w'); f.write(l); f.close()
# instant extension to show list of options
f = file('showoptlist.py', 'w'); f.write("""# encoding: utf-8
def showoptlist(ui, repo, *pats, **opts):
'''dummy command to show option descriptions'''
return 0
cmdtable = {
'showoptlist':
(showoptlist,
[('s', 'opt1', '', 'short width', '""" + s + """'),
('m', 'opt2', '', 'middle width', '""" + m + """'),
('l', 'opt3', '', 'long width', '""" + l + """')
],
""
)
}
""")
f.close()
EOF
S=`cat s`
M=`cat m`
L=`cat l`
########################################
#### alignment of:
#### - option descriptions in help
cat <<EOF > .hg/hgrc
[extensions]
ja_ext = `pwd`/showoptlist.py
EOF
echo '% check alignment of option descriptions in help'
hg help showoptlist
########################################
#### alignment of:
#### - user names in annotate
#### - file names in diffstat
rm -f s; touch s
rm -f m; touch m
rm -f l; touch l
#### add files
cp s $S
hg add $S
cp m $M
hg add $M
cp l $L
hg add $L
#### commit(1)
echo 'first line(1)' >> s; cp s $S
echo 'first line(2)' >> m; cp m $M
echo 'first line(3)' >> l; cp l $L
hg commit -m 'first commit' -u $S -d "1000000 0"
#### commit(2)
echo 'second line(1)' >> s; cp s $S
echo 'second line(2)' >> m; cp m $M
echo 'second line(3)' >> l; cp l $L
hg commit -m 'second commit' -u $M -d "1000000 0"
#### commit(3)
echo 'third line(1)' >> s; cp s $S
echo 'third line(2)' >> m; cp m $M
echo 'third line(3)' >> l; cp l $L
hg commit -m 'third commit' -u $L -d "1000000 0"
#### check
echo '% check alignment of user names in annotate'
hg annotate -u $M
echo '% check alignment of filenames in diffstat'
hg diff -c tip --stat
########################################
#### alignment of:
#### - branch names in list
#### - tag names in list
#### add branches/tags
hg branch $S
hg tag -d "1000000 0" $S
hg branch $M
hg tag -d "1000000 0" $M
hg branch $L
hg tag -d "1000000 0" $L
#### check
echo '% check alignment of branches'
hg tags
echo '% check alignment of tags'
hg tags
########################################
exit 0