##// END OF EJS Templates
branching: merge stable into default
branching: merge stable into default

File last commit:

r51618:7e5be4a7 stable
r51644:0a55206c merge default
Show More
test-archive.t
628 lines | 19.6 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: replace exit 80 with #require
r22046 #require serve
Mads Kiilerich
tests: use 'hghave serve' to guard tests that requires serve daemon management
r15446
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init test
Martin Geisler
tests: unify test-archive
r11853 $ cd test
$ echo foo>foo
$ hg commit -Am 1 -d '1 0'
adding foo
$ echo bar>bar
$ hg commit -Am 2 -d '2 0'
adding bar
$ mkdir baz
$ echo bletch>baz/bletch
$ hg commit -Am 3 -d '1000000000 0'
adding baz/bletch
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 $ hg init subrepo
$ touch subrepo/sub
$ hg -q -R subrepo ci -Am "init subrepo"
$ echo "subrepo = subrepo" > .hgsub
$ hg add .hgsub
$ hg ci -m "add subrepo"
Matt Harbison
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)...
r34816
$ cat >> $HGRCPATH <<EOF
> [extensions]
> share =
> EOF
hg subrepos are shared when the parent repo is shared
$ cd ..
$ hg share test shared1
updating working directory
sharing subrepo subrepo from $TESTTMP/test/subrepo
5 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat shared1/subrepo/.hg/sharedpath
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 $TESTTMP/test/subrepo/.hg (no-eol)
Matt Harbison
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)...
r34816
hg subrepos are shared into existence on demand if the parent was shared
$ hg clone -qr 1 test clone1
$ hg share clone1 share2
updating working directory
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R clone1 -q pull
$ hg -R share2 update tip
sharing subrepo subrepo from $TESTTMP/test/subrepo
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat share2/subrepo/.hg/sharedpath
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 $TESTTMP/test/subrepo/.hg (no-eol)
Matt Harbison
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)...
r34816 $ echo 'mod' > share2/subrepo/sub
$ hg -R share2 ci -Sqm 'subrepo mod'
$ hg -R clone1 update -C tip
cloning subrepo subrepo from $TESTTMP/test/subrepo
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: use grep -E instead of obsolescent egrep...
r51618 $ find share2 | grep -E 'sharedpath|00.+\.i' | sort
Matt Harbison
subrepo: implement 'unshare' for Mercurial subrepos...
r34880 share2/.hg/sharedpath
share2/subrepo/.hg/sharedpath
$ hg -R share2 unshare
unsharing subrepo 'subrepo'
Mads Kiilerich
tests: use grep -E instead of obsolescent egrep...
r51618 $ find share2 | grep -E 'sharedpath|00.+\.i' | sort
Matt Harbison
subrepo: implement 'unshare' for Mercurial subrepos...
r34880 share2/.hg/00changelog.i
share2/.hg/sharedpath.old
share2/.hg/store/00changelog.i
share2/.hg/store/00manifest.i
share2/subrepo/.hg/00changelog.i
share2/subrepo/.hg/sharedpath.old
share2/subrepo/.hg/store/00changelog.i
share2/subrepo/.hg/store/00manifest.i
$ hg -R share2/subrepo log -r tip -T compact
1[tip] 559dcc9bfa65 1970-01-01 00:00 +0000 test
subrepo mod
Matt Harbison
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)...
r34816 $ rm -rf clone1
$ hg clone -qr 1 test clone1
$ hg share clone1 shared3
updating working directory
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R clone1 -q pull
$ hg -R shared3 archive --config ui.archivemeta=False -r tip -S archive
sharing subrepo subrepo from $TESTTMP/test/subrepo
$ cat shared3/subrepo/.hg/sharedpath
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 $TESTTMP/test/subrepo/.hg (no-eol)
Matt Harbison
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)...
r34816 $ diff -r archive test
Only in test: .hg
Augie Fackler
tests: add some (?) output lines to catch "helpful" output from Solaris diff...
r34900 Common subdirectories: archive/baz and test/baz (?)
Common subdirectories: archive/subrepo and test/subrepo (?)
Matt Harbison
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)...
r34816 Only in test/subrepo: .hg
[1]
$ rm -rf archive
$ cd test
Martin Geisler
tests: unify test-archive
r11853 $ echo "[web]" >> .hg/hgrc
$ echo "name = test-archive" >> .hg/hgrc
Matt Harbison
hgweb: fix a crash when using web.archivesubrepos...
r23232 $ echo "archivesubrepos = True" >> .hg/hgrc
Martin Geisler
tests: unify test-archive
r11853 $ cp .hg/hgrc .hg/hgrc-base
> test_archtype() {
David Demelier
config: rename allow_archive to allow-archive...
r38215 > echo "allow-archive = $1" >> .hg/hgrc
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 > test_archtype_run "$@"
> }
> test_archtype_deprecated() {
> echo "allow$1 = True" >> .hg/hgrc
> test_archtype_run "$@"
> }
> test_archtype_run() {
> hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log \
> --config extensions.blackbox= --config blackbox.track=develwarn
Martin Geisler
tests: unify test-archive
r11853 > cat hg.pid >> $DAEMON_PIDS
> echo % $1 allowed should give 200
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 > get-with-headers.py --bodyfile body localhost:$HGPORT "archive/tip.$2" -
> f --size --sha1 body
Martin Geisler
tests: unify test-archive
r11853 > echo % $3 and $4 disallowed should both give 403
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 > get-with-headers.py --bodyfile body localhost:$HGPORT "archive/tip.$3" -
> f --size --sha1 body
> get-with-headers.py --bodyfile body localhost:$HGPORT "archive/tip.$4" -
> f --size --sha1 body
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 > killdaemons.py
Martin Geisler
tests: unify test-archive
r11853 > cat errors.log
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 > hg blackbox --config extensions.blackbox= --config blackbox.track=
Martin Geisler
tests: unify test-archive
r11853 > cp .hg/hgrc-base .hg/hgrc
> }
check http return codes
$ test_archtype gz tar.gz tar.bz2 zip
% gz allowed should give 200
200 Script output follows
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-disposition: attachment; filename=test-archive-1701ef1f1510.tar.gz
content-type: application/x-gzip
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
Gregory Szorc
tests: make tarball output conditional on Python version...
r43341 body: size=408, sha1=8fa06531bddecc365a9f5edb0f88b65974bfe505 (no-py38 !)
Augie Fackler
tests: update test-archive.t expectations for python3.9 changes...
r45097 body: size=506, sha1=70926a04cb8887d0bcccf5380488100a10222def (py38 no-py39 !)
body: size=505, sha1=eb823c293bedff0df4070b854e2c5cbb06d6ec62 (py39 !)
Martin Geisler
tests: unify test-archive
r11853 % tar.bz2 and zip disallowed should both give 403
403 Archive type not allowed: bz2
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
Martin Geisler
tests: unify test-archive
r11853 403 Archive type not allowed: zip
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
Martin Geisler
tests: unify test-archive
r11853 $ test_archtype bz2 tar.bz2 zip tar.gz
% bz2 allowed should give 200
200 Script output follows
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-disposition: attachment; filename=test-archive-1701ef1f1510.tar.bz2
content-type: application/x-bzip2
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
Gregory Szorc
tests: make tarball output conditional on Python version...
r43341 body: size=426, sha1=8d87f5aba6e14f1bfea6c232985982c278b2fb0b (no-py38 !)
Augie Fackler
tests: update test-archive.t expectations for python3.9 changes...
r45097 body: size=506, sha1=1bd1f8e8d3701704bd4385038bd9c09b81c77f4e (py38 no-py39 !)
body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (py39 !)
Martin Geisler
tests: unify test-archive
r11853 % zip and tar.gz disallowed should both give 403
403 Archive type not allowed: zip
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
Martin Geisler
tests: unify test-archive
r11853 403 Archive type not allowed: gz
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
Martin Geisler
tests: unify test-archive
r11853 $ test_archtype zip zip tar.gz tar.bz2
% zip allowed should give 200
200 Script output follows
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-disposition: attachment; filename=test-archive-1701ef1f1510.zip
content-type: application/zip
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
Gregory Szorc
tests: add size and hash for Python 3...
r41346 body: size=(1377|1461|1489), sha1=(677b14d3d048778d5eb5552c14a67e6192068650|be6d3983aa13dfe930361b2569291cdedd02b537|1897e496871aa89ad685a92b936f5fa0d008b9e8) (re)
Martin Geisler
tests: unify test-archive
r11853 % tar.gz and tar.bz2 disallowed should both give 403
403 Archive type not allowed: gz
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
Martin Geisler
tests: unify test-archive
r11853 403 Archive type not allowed: bz2
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
Martin Geisler
tests: unify test-archive
r11853
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 check http return codes (with deprecated option)
$ test_archtype_deprecated gz tar.gz tar.bz2 zip
% gz allowed should give 200
200 Script output follows
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-disposition: attachment; filename=test-archive-1701ef1f1510.tar.gz
content-type: application/x-gzip
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
Gregory Szorc
tests: make tarball output conditional on Python version...
r43341 body: size=408, sha1=8fa06531bddecc365a9f5edb0f88b65974bfe505 (no-py38 !)
Augie Fackler
tests: update test-archive.t expectations for python3.9 changes...
r45097 body: size=506, sha1=70926a04cb8887d0bcccf5380488100a10222def (py38 no-py39 !)
body: size=505, sha1=eb823c293bedff0df4070b854e2c5cbb06d6ec62 (py39 !)
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 % tar.bz2 and zip disallowed should both give 403
403 Archive type not allowed: bz2
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 403 Archive type not allowed: zip
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 $ test_archtype_deprecated bz2 tar.bz2 zip tar.gz
% bz2 allowed should give 200
200 Script output follows
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-disposition: attachment; filename=test-archive-1701ef1f1510.tar.bz2
content-type: application/x-bzip2
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
Gregory Szorc
tests: make tarball output conditional on Python version...
r43341 body: size=426, sha1=8d87f5aba6e14f1bfea6c232985982c278b2fb0b (no-py38 !)
Augie Fackler
tests: update test-archive.t expectations for python3.9 changes...
r45097 body: size=506, sha1=1bd1f8e8d3701704bd4385038bd9c09b81c77f4e (py38 no-py39 !)
body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (py39 !)
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 % zip and tar.gz disallowed should both give 403
403 Archive type not allowed: zip
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 403 Archive type not allowed: gz
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 $ test_archtype_deprecated zip zip tar.gz tar.bz2
% zip allowed should give 200
200 Script output follows
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-disposition: attachment; filename=test-archive-1701ef1f1510.zip
content-type: application/zip
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
Gregory Szorc
tests: add size and hash for Python 3...
r41346 body: size=(1377|1461|1489), sha1=(677b14d3d048778d5eb5552c14a67e6192068650|be6d3983aa13dfe930361b2569291cdedd02b537|1897e496871aa89ad685a92b936f5fa0d008b9e8) (re)
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 % tar.gz and tar.bz2 disallowed should both give 403
403 Archive type not allowed: gz
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655 403 Archive type not allowed: bz2
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 content-type: text/html; charset=ascii
Gregory Szorc
tests: use $HTTP_DATE$ for Date header...
r37026 date: $HTTP_DATE$
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 etag: W/"*" (glob)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 server: testing stub value
Gregory Szorc
tests: additional test coverage of archive web command...
r36890 transfer-encoding: chunked
body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
Yuya Nishihara
configitems: drop redundant default of web.allow<archtype>...
r34655
David Demelier
config: rename allow_archive to allow-archive...
r38215 $ echo "allow-archive = gz bz2 zip" >> .hg/hgrc
Martin Geisler
tests: unify test-archive
r11853 $ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
av6
hgweb: test the order of archive links
r30747 check archive links' order
$ get-with-headers.py localhost:$HGPORT "?revcount=1" | grep '/archive/tip.'
<a href="/archive/tip.zip">zip</a>
<a href="/archive/tip.tar.gz">gz</a>
<a href="/archive/tip.tar.bz2">bz2</a>
Martin Geisler
tests: unify test-archive
r11853 invalid arch type should give 404
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ get-with-headers.py localhost:$HGPORT "archive/tip.invalid" | head -n 1
Martin Geisler
tests: unify test-archive
r11853 404 Unsupported archive type: None
$ TIP=`hg id -v | cut -f1 -d' '`
$ QTIP=`hg id -q`
$ cat > getarchive.py <<EOF
timeless
tests: test-archive.t use absolute_import...
r29179 > import os
> import sys
timeless
tests: test-archive.t use mercurial.util for urllib compat
r29183 > from mercurial import (
> util,
> )
Martin Geisler
tests: unify test-archive
r11853 > try:
> # Set stdout to binary mode for win32 platforms
> import msvcrt
> msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
> except ImportError:
> pass
Angel Ezquerra
test-archive: gracefully handle HTTPErrors on get-with-headers...
r18770 > if len(sys.argv) <= 3:
> node, archive = sys.argv[1:]
Martin von Zweigbergk
tests: make test-archive.t pass on py3.9 (issue6504)...
r47740 > requeststr = 'cmd=archive&node=%s&type=%s' % (node, archive)
Angel Ezquerra
test-archive: gracefully handle HTTPErrors on get-with-headers...
r18770 > else:
> node, archive, file = sys.argv[1:]
Martin von Zweigbergk
tests: make test-archive.t pass on py3.9 (issue6504)...
r47740 > requeststr = 'cmd=archive&node=%s&type=%s&file=%s' % (node, archive, file)
Angel Ezquerra
test-archive: gracefully handle HTTPErrors on get-with-headers...
r18770 > try:
timeless
tests: test-archive.t use sys.stdout.buffer for binary output in py3
r29182 > stdout = sys.stdout.buffer
> except AttributeError:
> stdout = sys.stdout
> try:
Jun Wu
tests: use LOCALIP...
r31008 > f = util.urlreq.urlopen('http://$LOCALIP:%s/?%s'
Angel Ezquerra
test-archive: gracefully handle HTTPErrors on get-with-headers...
r18770 > % (os.environ['HGPORT'], requeststr))
timeless
tests: test-archive.t use sys.stdout.buffer for binary output in py3
r29182 > stdout.write(f.read())
timeless
tests: test-archive.t use mercurial.util for urllib compat
r29183 > except util.urlerr.httperror as e:
Angel Ezquerra
test-archive: gracefully handle HTTPErrors on get-with-headers...
r18770 > sys.stderr.write(str(e) + '\n')
Martin Geisler
tests: unify test-archive
r11853 > EOF
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" getarchive.py "$TIP" gz | gunzip | tar tf - 2>/dev/null
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 test-archive-1701ef1f1510/.hg_archival.txt
test-archive-1701ef1f1510/.hgsub
test-archive-1701ef1f1510/.hgsubstate
test-archive-1701ef1f1510/bar
test-archive-1701ef1f1510/baz/bletch
test-archive-1701ef1f1510/foo
Matt Harbison
hgweb: fix a crash when using web.archivesubrepos...
r23232 test-archive-1701ef1f1510/subrepo/sub
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" getarchive.py "$TIP" bz2 | bunzip2 | tar tf - 2>/dev/null
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 test-archive-1701ef1f1510/.hg_archival.txt
test-archive-1701ef1f1510/.hgsub
test-archive-1701ef1f1510/.hgsubstate
test-archive-1701ef1f1510/bar
test-archive-1701ef1f1510/baz/bletch
test-archive-1701ef1f1510/foo
Matt Harbison
hgweb: fix a crash when using web.archivesubrepos...
r23232 test-archive-1701ef1f1510/subrepo/sub
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" getarchive.py "$TIP" zip > archive.zip
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ unzip -t archive.zip
Martin Geisler
tests: unify test-archive
r11853 Archive: archive.zip
Augie Fackler
tests: glob whitespace between path and OK in unzip(1) output...
r29562 testing: test-archive-1701ef1f1510/.hg_archival.txt*OK (glob)
testing: test-archive-1701ef1f1510/.hgsub*OK (glob)
testing: test-archive-1701ef1f1510/.hgsubstate*OK (glob)
testing: test-archive-1701ef1f1510/bar*OK (glob)
testing: test-archive-1701ef1f1510/baz/bletch*OK (glob)
testing: test-archive-1701ef1f1510/foo*OK (glob)
testing: test-archive-1701ef1f1510/subrepo/sub*OK (glob)
Martin Geisler
tests: unify test-archive
r11853 No errors detected in compressed data of archive.zip.
Angel Ezquerra
hgweb: teach archive how to download a specific directory or file...
r18771 test that we can download single directories and files
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" getarchive.py "$TIP" gz baz | gunzip | tar tf - 2>/dev/null
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 test-archive-1701ef1f1510/baz/bletch
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" getarchive.py "$TIP" gz foo | gunzip | tar tf - 2>/dev/null
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 test-archive-1701ef1f1510/foo
Angel Ezquerra
hgweb: teach archive how to download a specific directory or file...
r18771
Angel Ezquerra
hgweb: respond HTTP_NOT_FOUND when an archive request does not match any files
r18968 test that we detect file patterns that match no files
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" getarchive.py "$TIP" gz foobar
Angel Ezquerra
hgweb: respond HTTP_NOT_FOUND when an archive request does not match any files
r18968 HTTP Error 404: file(s) not found: foobar
Angel Ezquerra
hgweb: teach archive how to download a specific directory or file...
r18771 test that we reject unsafe patterns
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" getarchive.py "$TIP" gz relre:baz
Angel Ezquerra
hgweb: respond HTTP_NOT_FOUND when an archive request does not match any files
r18968 HTTP Error 404: file(s) not found: relre:baz
Angel Ezquerra
hgweb: teach archive how to download a specific directory or file...
r18771
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Martin Geisler
tests: unify test-archive
r11853
$ hg archive -t tar test.tar
$ tar tf test.tar
test/.hg_archival.txt
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 test/.hgsub
test/.hgsubstate
Martin Geisler
tests: unify test-archive
r11853 test/bar
test/baz/bletch
test/foo
Pierre-Yves David
progress: get the extremely verbose output out of default debug...
r25125 $ hg archive --debug -t tbz2 -X baz test.tar.bz2 --config progress.debug=true
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 archiving: 0/4 files (0.00%)
archiving: .hgsub 1/4 files (25.00%)
archiving: .hgsubstate 2/4 files (50.00%)
archiving: bar 3/4 files (75.00%)
archiving: foo 4/4 files (100.00%)
Martin Geisler
tests: unify test-archive
r11853 $ bunzip2 -dc test.tar.bz2 | tar tf - 2>/dev/null
test/.hg_archival.txt
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 test/.hgsub
test/.hgsubstate
Martin Geisler
tests: unify test-archive
r11853 test/bar
test/foo
$ hg archive -t tgz -p %b-%h test-%h.tar.gz
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ gzip -dc test-$QTIP.tar.gz | tar tf - 2>/dev/null
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 test-1701ef1f1510/.hg_archival.txt
test-1701ef1f1510/.hgsub
test-1701ef1f1510/.hgsubstate
test-1701ef1f1510/bar
test-1701ef1f1510/baz/bletch
test-1701ef1f1510/foo
Martin Geisler
tests: unify test-archive
r11853
$ hg archive autodetected_test.tar
$ tar tf autodetected_test.tar
autodetected_test/.hg_archival.txt
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 autodetected_test/.hgsub
autodetected_test/.hgsubstate
Martin Geisler
tests: unify test-archive
r11853 autodetected_test/bar
autodetected_test/baz/bletch
autodetected_test/foo
The '-t' should override autodetection
$ hg archive -t tar autodetect_override_test.zip
$ tar tf autodetect_override_test.zip
autodetect_override_test.zip/.hg_archival.txt
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 autodetect_override_test.zip/.hgsub
autodetect_override_test.zip/.hgsubstate
Martin Geisler
tests: unify test-archive
r11853 autodetect_override_test.zip/bar
autodetect_override_test.zip/baz/bletch
autodetect_override_test.zip/foo
$ for ext in tar tar.gz tgz tar.bz2 tbz2 zip; do
> hg archive auto_test.$ext
> if [ -d auto_test.$ext ]; then
> echo "extension $ext was not autodetected."
> fi
> done
$ cat > md5comp.py <<EOF
Augie Fackler
tests: update test-archive to always use hashlib...
r33876 > import hashlib
Martin Geisler
tests: unify test-archive
r11853 > import sys
> f1, f2 = sys.argv[1:3]
Augie Fackler
tests: update test-archive to always use hashlib...
r33876 > h1 = hashlib.md5(open(f1, 'rb').read()).hexdigest()
> h2 = hashlib.md5(open(f2, 'rb').read()).hexdigest()
timeless
tests: test-archive.t use print_function
r29177 > print(h1 == h2 or "md5 differ: " + repr((h1, h2)))
Martin Geisler
tests: unify test-archive
r11853 > EOF
Martin Geisler
test-archive: whitespace cleanup
r13140 archive name is stored in the archive, so create similar archives and
rename them afterwards.
Martin Geisler
tests: unify test-archive
r11853
$ hg archive -t tgz tip.tar.gz
$ mv tip.tar.gz tip1.tar.gz
$ sleep 1
$ hg archive -t tgz tip.tar.gz
$ mv tip.tar.gz tip2.tar.gz
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" md5comp.py tip1.tar.gz tip2.tar.gz
Martin Geisler
tests: unify test-archive
r11853 True
$ hg archive -t zip -p /illegal test.zip
abort: archive prefix contains illegal components
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-archive
r11853 $ hg archive -t zip -p very/../bad test.zip
$ hg archive --config ui.archivemeta=false -t zip -r 2 test.zip
$ unzip -t test.zip
Archive: test.zip
Augie Fackler
tests: glob whitespace between path and OK in unzip(1) output...
r29562 testing: test/bar*OK (glob)
testing: test/baz/bletch*OK (glob)
testing: test/foo*OK (glob)
Martin Geisler
tests: unify test-archive
r11853 No errors detected in compressed data of test.zip.
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg archive -t tar - | tar tf - 2>/dev/null
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 test-1701ef1f1510/.hg_archival.txt
test-1701ef1f1510/.hgsub
test-1701ef1f1510/.hgsubstate
test-1701ef1f1510/bar
test-1701ef1f1510/baz/bletch
test-1701ef1f1510/foo
Martin Geisler
tests: unify test-archive
r11853
$ hg archive -r 0 -t tar rev-%r.tar
Mads Kiilerich
tests: fix void and invalid test in test-archive.t...
r19870 $ [ -f rev-0.tar ]
Martin Geisler
tests: unify test-archive
r11853
test .hg_archival.txt
$ hg archive ../test-tags
$ cat ../test-tags/.hg_archival.txt
repo: daa7f7c60e0a224faa4ff77ca41b2760562af264
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 node: 1701ef1f151069b8747038e93b5186bb43a47504
Martin Geisler
tests: unify test-archive
r11853 branch: default
latesttag: null
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 latesttagdistance: 4
Siddharth Agarwal
archive: store number of changes since latest tag as well...
r23645 changessincelatesttag: 4
Martin Geisler
tests: unify test-archive
r11853 $ hg tag -r 2 mytag
$ hg tag -r 2 anothertag
$ hg archive -r 2 ../test-lasttag
$ cat ../test-lasttag/.hg_archival.txt
repo: daa7f7c60e0a224faa4ff77ca41b2760562af264
node: 2c0277f05ed49d1c8328fb9ba92fba7a5ebcb33e
branch: default
tag: anothertag
tag: mytag
$ hg archive -t bogus test.bogus
abort: unknown archive type 'bogus'
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-archive
r11853
Martin Geisler
archive: add support for progress extension
r13143 enable progress extension:
$ cp $HGRCPATH $HGRCPATH.no-progress
$ cat >> $HGRCPATH <<EOF
> [progress]
> assume-tty = 1
Augie Fackler
progress using tests: disable time estimates to avoid flakiness
r13149 > format = topic bar number
Martin Geisler
archive: add support for progress extension
r13143 > delay = 0
> refresh = 0
> width = 60
> EOF
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 $ hg archive ../with-progress
\r (no-eol) (esc)
Matt Harbison
tests: introduce a subrepository to test-archive.t...
r23231 archiving [ ] 0/6\r (no-eol) (esc)
archiving [======> ] 1/6\r (no-eol) (esc)
archiving [=============> ] 2/6\r (no-eol) (esc)
archiving [====================> ] 3/6\r (no-eol) (esc)
archiving [===========================> ] 4/6\r (no-eol) (esc)
archiving [==================================> ] 5/6\r (no-eol) (esc)
archiving [==========================================>] 6/6\r (no-eol) (esc)
Mads Kiilerich
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
r17743 \r (no-eol) (esc)
Martin Geisler
archive: add support for progress extension
r13143
cleanup after progress extension test:
$ cp $HGRCPATH.no-progress $HGRCPATH
Martin Geisler
tests: unify test-archive
r11853 server errors
$ cat errors.log
empty repo
$ hg init ../empty
$ cd ../empty
$ hg archive ../test-empty
abort: no working directory: please specify a revision
Martin von Zweigbergk
errors: introduce InputError and use it from commands and cmdutil...
r46431 [10]
Martin Geisler
test-archive: whitespace cleanup
r13140
Martin Geisler
merge with stable
r12321 old file -- date clamped to 1980
Matt Mackall
tests: fix touch -t with RHEL
r12368 $ touch -t 197501010000 old
Martin Geisler
merge with stable
r12321 $ hg add old
$ hg commit -m old
$ hg archive ../old.zip
Mads Kiilerich
tests: use grep -E instead of obsolescent egrep...
r51618 $ unzip -l ../old.zip | grep -v -- ----- | grep -E -v files$
Martin Geisler
merge with stable
r12321 Archive: ../old.zip
Brodie Rao
tests: require regexes in unified tests to be marked with " (re)"...
r12375 \s*Length.* (re)
Siddharth Agarwal
archive: store number of changes since latest tag as well...
r23645 *172*80*00:00*old/.hg_archival.txt (glob)
Brodie Rao
tests: add glob matching for unified tests...
r12376 *0*80*00:00*old/old (glob)
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
David Demelier
archive: add XZ support if built with Python 3
r43210 test xz support only available in Python 3.4
Manuel Jacob
archival: abort if compression method is unavailable...
r45601 #if lzma
David Demelier
archive: add XZ support if built with Python 3
r43210 $ hg archive ../archive.txz
Matt Harbison
hghave: add a check for the `xz` compression utility...
r44098 $ which xz >/dev/null && xz -l ../archive.txz | head -n1 || true
Strms Blocks Compressed Uncompressed Ratio Check Filename (xz !)
David Demelier
archive: add XZ support if built with Python 3
r43210 $ rm -f ../archive.txz
Manuel Jacob
archival: abort if compression method is unavailable...
r45601 #endif
Gregory Szorc
tests: delete some no-py3 blocks...
r49733 #if no-lzma
Manuel Jacob
archival: abort if compression method is unavailable...
r45601 $ hg archive ../archive.txz
abort: lzma module is not available
[255]
#endif
David Demelier
archive: add XZ support if built with Python 3
r43210
Angel Ezquerra
archive: raise error.Abort if the file pattern matches no files...
r18967 show an error when a provided pattern matches no files
$ hg archive -I file_that_does_not_exist.foo ../empty.zip
abort: no files match the archive pattern
[255]
$ hg archive -X * ../empty.zip
abort: no files match the archive pattern
[255]
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..
FUJIWARA Katsunori
archival: add "extended-timestamp" extra block for zip archives (issue3600)...
r17628
issue3600: check whether "hg archive" can create archive files which
are extracted with expected timestamp, even though TZ is not
configured as GMT.
$ mkdir issue3600
$ cd issue3600
$ hg init repo
$ echo a > repo/a
$ hg -R repo add repo/a
$ hg -R repo commit -m '#0' -d '456789012 21600'
$ cat > show_mtime.py <<EOF
Augie Fackler
tests: update test-archive to pass our module import checker
r33946 > import os
> import sys
timeless
tests: test-archive.t use print_function
r29177 > print(int(os.stat(sys.argv[1]).st_mtime))
FUJIWARA Katsunori
archival: add "extended-timestamp" extra block for zip archives (issue3600)...
r17628 > EOF
$ hg -R repo archive --prefix tar-extracted archive.tar
$ (TZ=UTC-3; export TZ; tar xf archive.tar)
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" show_mtime.py tar-extracted/a
FUJIWARA Katsunori
archival: add "extended-timestamp" extra block for zip archives (issue3600)...
r17628 456789012
$ hg -R repo archive --prefix zip-extracted archive.zip
$ (TZ=UTC-3; export TZ; unzip -q archive.zip)
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" show_mtime.py zip-extracted/a
FUJIWARA Katsunori
archival: add "extended-timestamp" extra block for zip archives (issue3600)...
r17628 456789012
$ cd ..