##// 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:

r9879:7bb004fc stable
r12319:381f1312 stable
Show More
test-branchmap
58 lines | 1.5 KiB | text/plain | TextLexer
#!/bin/sh
hgserve()
{
hg serve -a localhost -p $HGPORT1 -d --pid-file=hg.pid -E errors.log -v $@ \
| sed -e 's/:[0-9][0-9]*//g' -e 's/http:\/\/[^/]*\//http:\/\/localhost\//'
cat hg.pid >> "$DAEMON_PIDS"
}
hg init a
hg --encoding utf-8 -R a branch æ
echo foo > a/foo
hg -R a ci -Am foo
hgserve -R a --config web.push_ssl=False --config web.allow_push=* --encoding latin1
hg --encoding utf-8 clone http://localhost:$HGPORT1 b
hg --encoding utf-8 -R b log
echo bar >> b/foo
hg -R b ci -m bar
hg --encoding utf-8 -R b push | sed "s/$HGPORT1/PORT/"
hg -R a --encoding utf-8 log
kill `cat hg.pid`
# verify 7e7d56fe4833 (encoding fallback in branchmap to maintain compatibility with 1.3.x)
cat <<EOF > oldhg
import sys
from mercurial import ui, hg, commands
class StdoutWrapper(object):
def __init__(self, stdout):
self._file = stdout
def write(self, data):
if data == '47\n':
# latin1 encoding is one %xx (3 bytes) shorter
data = '44\n'
elif data.startswith('%C3%A6 '):
# translate to latin1 encoding
data = '%%E6 %s' % data[7:]
self._file.write(data)
def __getattr__(self, name):
return getattr(self._file, name)
sys.stdout = StdoutWrapper(sys.stdout)
sys.stderr = StdoutWrapper(sys.stderr)
myui = ui.ui()
repo = hg.repository(myui, 'a')
commands.serve(myui, repo, stdio=True)
EOF
echo baz >> b/foo
hg -R b ci -m baz
hg push -R b -e 'python oldhg' ssh://dummy/ --encoding latin1