Mercurial > hg
view Makefile @ 2168:dd4ec4576cc8
Proper check to see if zip dest needs to be wrapped in tellable
From hgweb, calling archival.zipit fails with the error message
"Illegal seek". This happens because sys.stdout.tell() throws an
exception:
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/mercurial/archival.py", line 99, in addfile
self.z.writestr(i, data)
File "/usr/lib/python2.4/zipfile.py", line 468, in writestr
zinfo.header_offset = self.fp.tell() # Start of header bytes
Checking whether hasattr(dest, 'tell') is insufficient, because
sys.stdout has a tell() method; you just can't call it.
This patch instead determines whether a fileobj is tellable by trying
to tell(), wrapping the fileobj if an exception is generated.
author | Colin McMillen <mcmillen@cs.cmu.edu> |
---|---|
date | Sun, 30 Apr 2006 22:43:41 +0200 |
parents | e84c69b43cdb |
children | 8a2a7f7d9df6 |
line wrap: on
line source
# This Makefile is only used by developers. PYTHON=python all: $(PYTHON) setup.py build_ext -i install: @echo "Read the file README for install instructions." clean: -$(PYTHON) setup.py clean --all # ignore errors of this command find . -name '*.py[co]' -exec rm -f '{}' ';' $(MAKE) -C doc clean dist: tests doc TAR_OPTIONS="--owner=root --group=root --mode=u+w,go-w,a+rX-s" $(PYTHON) setup.py sdist --force-manifest tests: cd tests && ./run-tests test-%: cd tests && ./run-tests $@ doc: $(MAKE) -C doc .PHONY: all clean dist tests doc