Mercurial > hg
view tests/test-revlog-ancestry.py @ 12570:a72c5ff1260c stable
Correct Content-Type header values for archive downloads.
The content type for both .tar.gz and .tar.bz2 downloads was
application/x-tar, which is correct for .tar files when no
Content-Encoding is present, but is not correct for .tar.gz and .tar.bz2
files unless Content-Encoding is set to gzip or x-bzip2, respectively.
However, setting Content-Encoding causes browsers to undo that encoding
during download, when a .gz or .bz2 file is usually the desired
artifact. Omitting the Content-Encoding header is preferred to avoid
having browsers uncompress non-render-able files.
Additionally, the Content-Disposition line indicates a final desired
filename with .tar.gz or .tar.bz2 extension which makes providing a
Content-Encoding header inappropriate.
With the current configuration browsers (Chrome and Firefox thus far)
are registering the application/x-tar Content-Type and not .tar
extension and appending that extension, yielding filename.tar.gz.tar as
a final on-disk artifact. This was originally reported here:
http://stackoverflow.com/questions/3753659
I've changed the .tar.gz and .tar.bz2 Content-Type values to
application/x-gzip and application/x-bzip2, respectively. Which yields
correctly named download artifacts on Firefox, Chrome, and IE.
author | Ry4an Brase <ry4an-hg@ry4an.org> |
---|---|
date | Mon, 20 Sep 2010 14:56:08 -0500 |
parents | a1aad8333864 |
children | 91f3ac205816 |
line wrap: on
line source
import os from mercurial import hg, ui, merge u = ui.ui() repo = hg.repository(u, 'test1', create=1) os.chdir('test1') def commit(text, time): repo.commit(text=text, date="%d 0" % time) def addcommit(name, time): f = open(name, 'w') f.write('%s\n' % name) f.close() repo[None].add([name]) commit(name, time) def update(rev): merge.update(repo, rev, False, True, False) def merge_(rev): merge.update(repo, rev, True, False, False) if __name__ == '__main__': addcommit("A", 0) addcommit("B", 1) update(0) addcommit("C", 2) merge_(1) commit("D", 3) update(2) addcommit("E", 4) addcommit("F", 5) update(3) addcommit("G", 6) merge_(5) commit("H", 7) update(5) addcommit("I", 8) # Ancestors print 'Ancestors of 5' for r in repo.changelog.ancestors(5): print r, print '\nAncestors of 6 and 5' for r in repo.changelog.ancestors(6, 5): print r, print '\nAncestors of 5 and 4' for r in repo.changelog.ancestors(5, 4): print r, # Descendants print '\n\nDescendants of 5' for r in repo.changelog.descendants(5): print r, print '\nDescendants of 5 and 3' for r in repo.changelog.descendants(5, 3): print r, print '\nDescendants of 5 and 4' for r in repo.changelog.descendants(5, 4): print r,