##// END OF EJS Templates
narrow: fix flaky behavior described in issue6150...
narrow: fix flaky behavior described in issue6150 This has been plaguing the CI for a good while, and it doesn't appear to have an easy fix proposed yet. The solution in this change is to always do an unambiguous (but expensive) lookup in case of comparison. This should always be correct, albeit suboptimal. Differential Revision: https://phab.mercurial-scm.org/D10034

File last commit:

r46431:8d72e29a default
r47280:b994db7c stable
Show More
test-archive.t
636 lines | 19.9 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
Matt Harbison
subrepo: implement 'unshare' for Mercurial subrepos...
r34880 $ find share2 | egrep 'sharedpath|00.+\.i' | sort
share2/.hg/sharedpath
share2/subrepo/.hg/sharedpath
$ hg -R share2 unshare
unsharing subrepo 'subrepo'
$ find share2 | egrep 'sharedpath|00.+\.i' | sort
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 > from __future__ import absolute_import
> 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:]
> requeststr = 'cmd=archive;node=%s;type=%s' % (node, archive)
> else:
> node, archive, file = sys.argv[1:]
> requeststr = 'cmd=archive;node=%s;type=%s;file=%s' % (node, archive, file)
> 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 > from __future__ import absolute_import, print_function
> 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
Augie Fackler
tests: work around FreeBSD's unzip having slightly different output...
r30844 $ unzip -l ../old.zip | grep -v -- ----- | egrep -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
#if py3 no-lzma
$ hg archive ../archive.txz
abort: lzma module is not available
[255]
#endif
#if no-py3
David Demelier
archive: add XZ support if built with Python 3
r43210 $ hg archive ../archive.txz
abort: xz compression is only available in Python 3
[255]
#endif
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 > from __future__ import absolute_import, print_function
> 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 ..