view tests/test-revset @ 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 40c40c6f20b8
children
line wrap: on
line source

#!/bin/sh

HGENCODING=utf-8
export HGENCODING

try() {
	echo '% hg debugrevspec' $@
	hg debugrevspec --debug $@
}

log() {
    echo "% log '$1'"
    hg log --template '{rev}\n' -r "$1"
}

hg init repo
cd repo

echo a > a
hg branch a
hg ci -Aqm0

echo b > b
hg branch b
hg ci -Aqm1

rm a
hg branch a-b-c-
hg ci -Aqm2 -u Bob

hg co 1
hg branch +a+b+c+
hg ci -Aqm3

hg co 2  # interleave
echo bb > b
hg branch -- -a-b-c-
hg ci -Aqm4 -d "May 12 2005"

hg co 3
hg branch /a/b/c/
hg ci -Aqm"5 bug"

hg merge 4
hg branch _a_b_c_
hg ci -Aqm"6 issue619"

hg branch .a.b.c.
hg ci -Aqm7

hg branch all
hg ci --close-branch -Aqm8

hg co 4
hg branch é
hg ci -Aqm9

hg tag -r6 1.0

hg clone --quiet -U -r 7 . ../remote1
hg clone --quiet -U -r 8 . ../remote2
echo "[paths]" >> .hg/hgrc
echo "default = ../remote1" >> .hg/hgrc

# names that should work without quoting
try a
try b-a
try _a_b_c_
try _a_b_c_-a
try .a.b.c.
try .a.b.c.-a
try -- '-a-b-c-' # complains
log -a-b-c- # succeeds with fallback
try -- -a-b-c--a # complains
try é

# quoting needed
try '"-a-b-c-"-a'

log '1 or 2'
log '1|2'
log '1 and 2'
log '1&2'
try '1&2|3' # precedence - and is higher
try '1|2&3' 
try '1&2&3' # associativity
try '1|(2|3)'
log '1.0' # tag
log 'a' # branch
log '2785f51ee' 
log 'date(2005)'
log 'date(this is a test)'
log 'date()'
log 'date'
log 'date(' 
log 'date(tip)'
log '"date"'
log 'date(2005) and 1::'

log 'ancestor(1)'
log 'ancestor(4,5)'
log 'ancestor(4,5) and 4'
log 'ancestors(5)'
log 'author(bob)'
log 'branch(é)'
log 'children(ancestor(4,5))'
log 'closed()'
log 'contains(a)'
log 'descendants(2 or 3)'
log 'file(b)'
log 'follow()'
log 'grep("issue\d+")'
try 'grep("(")' # invalid regular expression
log 'head()'
log 'heads(6::)'
log 'keyword(issue)'
log 'limit(head(), 1)'
log 'max(contains(a))'
log 'merge()'
log 'modifies(b)'
log 'outgoing()'
log 'outgoing("../remote1")'
log 'outgoing("../remote2")'
log 'p1(merge())'
log 'p2(merge())'
log 'parents(merge())'
log 'removes(a)'
log 'roots(all())'
log 'reverse(2 or 3 or 4 or 5)'
log 'sort(limit(reverse(all()), 3))'
log 'sort(2 or 3 or 4 or 5, date)'
log 'tagged()'
log 'user(bob)'

log '4::8'
log '4:8'

log 'sort(!merge() & (modifies(b) | user(bob) | keyword(bug) | keyword(issue) & 1::9), "-date")'

log 'not 0 and 0:2'
log 'not 1 and 0:2'
log 'not 2 and 0:2'
log '(1 and 2)::'
log '(1 and 2):'
log '(1 and 2):3'
log 'sort(head(), -rev)'