Mercurial > hg
view tests/test-bad-pull.t @ 18771:bb38f4f78104
hgweb: teach archive how to download a specific directory or file
The archive web command now takes into account the "file" request entry, if one
is provided.
The provided "file" is processed as a "path" corresponding to a directory or
file that will be downloaded.
With this change hgweb can to process requests such as:
http://mercurial.selenic.com/hg/archive/tip.zip/mercurial/templates
This will download all files on the mercurial/templates directory as a zip file.
It is not possible to specify file patterns ('glob', 'relglob', 'path',
'relpath', 're', 'relre' nor 'set'). The server will reject those with a
403 HTTP error response.
Note that this is a first step to add support for downloading directories from
the web interface. A following patch will modify the archiveentry map entry on
the different templates so that it adds the current folder path to the archive
links.
author | Angel Ezquerra <angel.ezquerra@gmail.com> |
---|---|
date | Sun, 10 Feb 2013 11:52:05 +0100 |
parents | 5d0538599428 |
children | 7a9cbb315d84 |
line wrap: on
line source
$ "$TESTDIR/hghave" serve || exit 80 #if windows $ hg clone http://localhost:$HGPORT/ copy abort: * (glob) [255] #else $ hg clone http://localhost:$HGPORT/ copy abort: error: Connection refused [255] #endif $ test -d copy [1] $ cat > dumb.py <<EOF > import BaseHTTPServer, SimpleHTTPServer, os, signal > def run(server_class=BaseHTTPServer.HTTPServer, > handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler): > server_address = ('localhost', int(os.environ['HGPORT'])) > httpd = server_class(server_address, handler_class) > open("listening", "w") > httpd.handle_request() > run() > EOF $ python dumb.py 2> log & $ P=$! $ while [ ! -f listening ]; do sleep 0; done $ hg clone http://localhost:$HGPORT/foo copy2 abort: HTTP Error 404: * (glob) [255] $ wait $P