##// END OF EJS Templates
largefiles: access to specific fields only if largefiles enabled (issue4547)...
largefiles: access to specific fields only if largefiles enabled (issue4547) Even if largefiles extension is enabled in a repository, "repo" object, which isn't "largefiles.reposetup()"-ed, is passed to overridden functions in the cases below unexpectedly, because extensions are enabled for each repositories strictly. (1) clone without -U: (2) pull with -U: (3) pull with --rebase: combination of "enabled@src", "disabled@dst" and "not-required@src" cause this situation. largefiles requirement @src @dst @src result -------- -------- --------------- -------------------- enabled disabled not-required aborted unexpectedly required requirement error (intentional) -------- -------- --------------- -------------------- enabled enabled * success -------- -------- --------------- -------------------- disabled enabled * success (only for "pull") -------- -------- --------------- -------------------- disabled disabled not-required success required requirement error (intentional) -------- -------- --------------- -------------------- (4) update/revert with a subrepo disabling largefiles In these cases, overridden functions cause accessing to largefiles specific fields of not "largefiles.reposetup()"-ed "repo" object, and execution is aborted. - (1), (2), (4) cause accessing to "_lfstatuswriters" in "getstatuswriter()" invoked via "updatelfiles()" - (3) causes accessing to "_lfcommithooks" in "overriderebase()" For safe accessing to these fields, this patch examines whether passed "repo" object is "largefiles.reposetup()"-ed or not before accessing to them. This patch chooses examining existence of newly introduced "_largefilesenabled" instead of "_lfcommithooks" and "_lfstatuswriters" directly, because the former is better name for the generic "largefiles is enabled in this repo" mark than the latter. In the future, all other overridden functions should avoid largefiles specific processing for efficiency, and "_largefilesenabled" is better also for such purpose. BTW, "lfstatus" can't be used for such purpose, because some code paths set it forcibly regardless of existence of it in specified "repo" object.

File last commit:

r24138:eabe44ec default
r24158:d414c28d stable
Show More
test-ssh.t
471 lines | 13.6 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: unify test-ssh
r12414
This test tries to exercise the ssh functionality with a dummy script
Mads Kiilerich
tests: fix test-ssh.t after 6bd9778ae749
r14185 creating 'remote' repo
Matt Mackall
tests: unify test-ssh
r12414
$ hg init remote
$ cd remote
$ echo this > foo
$ echo this > fooO
$ hg ci -A -m "init" foo fooO
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126
insert a closed branch (issue4428)
$ hg up null
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg branch closed
marked working directory as branch closed
(branches are permanent and global, did you want a bookmark?)
$ hg ci -mc0
$ hg ci --close-branch -mc1
$ hg up -q default
configure for serving
Mads Kiilerich
tests: fix test-ssh.t after 6bd9778ae749
r14185 $ cat <<EOF > .hg/hgrc
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 > [server]
> uncompressed = True
>
> [hooks]
Mads Kiilerich
tests: consistently use printenv.py the same MSYS/Windows-compatible way...
r17018 > changegroup = python "$TESTDIR/printenv.py" changegroup-in-remote 0 ../dummylog
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 > EOF
Matt Mackall
tests: unify test-ssh
r12414 $ cd ..
repo not found error
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/nonexistent local
Martin Geisler
serve: lowercase "no repo here" message
r16935 remote: abort: there is no Mercurial repository here (.hg not found)!
Matt Mackall
tests: unify test-ssh
r12414 abort: no suitable response from remote hg!
[255]
non-existent absolute path
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy//`pwd`/nonexistent local
Martin Geisler
serve: lowercase "no repo here" message
r16935 remote: abort: there is no Mercurial repository here (.hg not found)!
Matt Mackall
tests: unify test-ssh
r12414 abort: no suitable response from remote hg!
[255]
clone remote via stream
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg clone -e "python \"$TESTDIR/dummyssh\"" --uncompressed ssh://user@dummy/remote local-stream
Matt Mackall
tests: unify test-ssh
r12414 streaming all changes
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 4 files to transfer, 615 bytes of data
transferred 615 bytes in * seconds (*) (glob)
Durham Goode
clone: fix copying bookmarks in uncompressed clones (issue4430)...
r23116 searching for changes
no changes found
Matt Mackall
tests: unify test-ssh
r12414 updating to branch default
Matt Mackall
tests: unify test-ssh
r12489 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
tests: unify test-ssh
r12414 $ cd local-stream
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 2 files, 3 changesets, 2 total revisions
$ hg branches
default 0:1160648e36ce
Matt Mackall
tests: unify test-ssh
r12414 $ cd ..
Durham Goode
clone: fix copying bookmarks in uncompressed clones (issue4430)...
r23116 clone bookmarks via stream
$ hg -R local-stream book mybook
$ hg clone -e "python \"$TESTDIR/dummyssh\"" --uncompressed ssh://user@dummy/local-stream stream2
streaming all changes
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 4 files to transfer, 615 bytes of data
transferred 615 bytes in * seconds (*) (glob)
Durham Goode
clone: fix copying bookmarks in uncompressed clones (issue4430)...
r23116 searching for changes
no changes found
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd stream2
$ hg book
mybook 0:1160648e36ce
$ cd ..
$ rm -rf local-stream stream2
Matt Mackall
tests: unify test-ssh
r12414 clone remote via pull
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote local
Matt Mackall
tests: unify test-ssh
r12414 requesting all changes
adding changesets
adding manifests
adding file changes
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 added 3 changesets with 2 changes to 2 files
Matt Mackall
tests: unify test-ssh
r12414 updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
verify
$ cd local
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 2 files, 3 changesets, 2 total revisions
Matt Mackall
tests: unify test-ssh
r12414 $ echo '[hooks]' >> .hg/hgrc
Mads Kiilerich
tests: consistently use printenv.py the same MSYS/Windows-compatible way...
r17018 $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup-in-local 0 ../dummylog" >> .hg/hgrc
Matt Mackall
tests: unify test-ssh
r12414
empty default pull
$ hg paths
default = ssh://user@dummy/remote
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg pull -e "python \"$TESTDIR/dummyssh\""
Matt Mackall
tests: unify test-ssh
r12414 pulling from ssh://user@dummy/remote
searching for changes
no changes found
local change
$ echo bleah > foo
$ hg ci -m "add"
updating rc
$ echo "default-push = ssh://user@dummy/remote" >> .hg/hgrc
$ echo "[ui]" >> .hg/hgrc
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ echo "ssh = python \"$TESTDIR/dummyssh\"" >> .hg/hgrc
Matt Mackall
tests: unify test-ssh
r12414
find outgoing
$ hg out ssh://user@dummy/remote
comparing with ssh://user@dummy/remote
searching for changes
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 changeset: 3:a28a9d1a809c
Matt Mackall
tests: unify test-ssh
r12414 tag: tip
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 parent: 0:1160648e36ce
Matt Mackall
tests: unify test-ssh
r12414 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add
find incoming on the remote side
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg incoming -R ../remote -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/local
Matt Mackall
tests: unify test-ssh
r12414 comparing with ssh://user@dummy/local
searching for changes
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 changeset: 3:a28a9d1a809c
Matt Mackall
tests: unify test-ssh
r12414 tag: tip
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 parent: 0:1160648e36ce
Matt Mackall
tests: unify test-ssh
r12414 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add
Brodie Rao
test-ssh: test absolute path that exists
r12504 find incoming on the remote side (using absolute path)
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg incoming -R ../remote -e "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/`pwd`"
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with ssh://user@dummy/$TESTTMP/local
Brodie Rao
test-ssh: test absolute path that exists
r12504 searching for changes
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 changeset: 3:a28a9d1a809c
Brodie Rao
test-ssh: test absolute path that exists
r12504 tag: tip
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 parent: 0:1160648e36ce
Brodie Rao
test-ssh: test absolute path that exists
r12504 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add
Matt Mackall
tests: unify test-ssh
r12414 push
$ hg push
pushing to ssh://user@dummy/remote
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
$ cd ../remote
check remote tip
$ hg tip
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 changeset: 3:a28a9d1a809c
Matt Mackall
tests: unify test-ssh
r12414 tag: tip
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 parent: 0:1160648e36ce
Matt Mackall
tests: unify test-ssh
r12414 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 2 files, 4 changesets, 3 total revisions
Matt Mackall
tests: unify test-ssh
r12414 $ hg cat -r tip foo
bleah
$ echo z > z
$ hg ci -A -m z z
created new head
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 test pushkeys and bookmarks
$ cd ../local
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg debugpushkey --config ui.ssh="python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote namespaces
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 bookmarks
Mads Kiilerich <mads at kiilerich.com>
debugpushkey: list keys sorted
r18255 namespaces
Pierre-Yves David
phases: add basic pushkey support
r15648 phases
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 $ hg book foo -r 0
$ hg out -B
comparing with ssh://user@dummy/remote
searching for changed bookmarks
foo 1160648e36ce
$ hg push -B foo
pushing to ssh://user@dummy/remote
searching for changes
no changes found
exporting bookmark foo
Matt Mackall
push: don't treat bookmark as a found change...
r16038 [1]
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg debugpushkey --config ui.ssh="python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote bookmarks
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 foo 1160648e36cec0054048a7edc4110c6f84fde594
$ hg book -f foo
Matt Mackall
pushkey: use UTF-8
r13050 $ hg push --traceback
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 pushing to ssh://user@dummy/remote
searching for changes
no changes found
updating bookmark foo
Matt Mackall
push: return 1 if no changes found (issue3228)...
r16023 [1]
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 $ hg book -d foo
$ hg in -B
comparing with ssh://user@dummy/remote
searching for changed bookmarks
foo a28a9d1a809c
$ hg book -f -r 0 foo
$ hg pull -B foo
pulling from ssh://user@dummy/remote
no changes found
updating bookmark foo
$ hg book -d foo
$ hg push -B foo
Matt Mackall
bookmarks: move push/pull command features to core
r13368 pushing to ssh://user@dummy/remote
searching for changes
no changes found
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 deleting remote bookmark foo
Matt Mackall
push: don't treat bookmark as a found change...
r16038 [1]
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969
Matt Mackall
tests: unify test-ssh
r12414 a bad, evil hook that prints to stdout
Mads Kiilerich
tests: share dummyssh
r14186 $ cat <<EOF > $TESTTMP/badhook
> import sys
> sys.stdout.write("KABOOM\n")
> EOF
Matt Mackall
pushkey: force HTTP POST on push and add tests (issue2489)
r12969 $ echo '[hooks]' >> ../remote/.hg/hgrc
Mads Kiilerich
tests: share dummyssh
r14186 $ echo "changegroup.stdout = python $TESTTMP/badhook" >> ../remote/.hg/hgrc
Matt Mackall
tests: unify test-ssh
r12414 $ echo r > r
$ hg ci -A -m z r
push should succeed even though it has an unexpected response
$ hg push
pushing to ssh://user@dummy/remote
searching for changes
Mads Kiilerich
discovery: improve "note: unsynced remote changes!" warning...
r20501 remote has heads on branch 'default' that are not known locally: 6c0482d977a3
Matt Mackall
tests: unify test-ssh
r12414 remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
remote: KABOOM
$ hg -R ../remote heads
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 changeset: 5:1383141674ec
Matt Mackall
tests: unify test-ssh
r12414 tag: tip
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 parent: 3:a28a9d1a809c
Matt Mackall
tests: unify test-ssh
r12414 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: z
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 changeset: 4:6c0482d977a3
Matt Mackall
tests: unify test-ssh
r12414 parent: 0:1160648e36ce
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: z
Adrian Buehlmann
sshrepo: catch passwords in ssh urls...
r13464
David Soria Parra
hg: add support for cloning bookmarks
r13604 clone bookmarks
$ hg -R ../remote bookmark test
$ hg -R ../remote bookmarks
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 * test 4:6c0482d977a3
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote local-bookmarks
David Soria Parra
hg: add support for cloning bookmarks
r13604 requesting all changes
adding changesets
adding manifests
adding file changes
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 added 6 changesets with 5 changes to 4 files (+1 heads)
David Soria Parra
hg: add support for cloning bookmarks
r13604 updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R local-bookmarks bookmarks
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 test 4:6c0482d977a3
David Soria Parra
hg: add support for cloning bookmarks
r13604
Adrian Buehlmann
sshrepo: catch passwords in ssh urls...
r13464 passwords in ssh urls are not supported
Matt Mackall
ssh: fix password test...
r13755 (we use a glob here because different Python versions give different
results here)
Adrian Buehlmann
sshrepo: catch passwords in ssh urls...
r13464
$ hg push ssh://user:erroneouspwd@dummy/remote
Matt Mackall
ssh: fix password test...
r13755 pushing to ssh://user:*@dummy/remote (glob)
Adrian Buehlmann
sshrepo: catch passwords in ssh urls...
r13464 abort: password in URL not supported!
[255]
Matt Mackall
tests: unify test-ssh
r12414 $ cd ..
Mads Kiilerich
ssh: quote remote paths (issue2983)
r15581
Mads Kiilerich
tests: add missing no-outer-repo requirements...
r17015 hide outer repo
$ hg init
Mads Kiilerich
ssh: quote remote paths (issue2983)
r15581 Test remote paths with spaces (issue2983):
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg init --ssh "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/a repo"
Brad Hall
tag: don't allow tagging the null revision (issue1915)...
r17260 $ touch "$TESTTMP/a repo/test"
$ hg -R 'a repo' commit -A -m "test"
adding test
Mads Kiilerich
ssh: quote remote paths (issue2983)
r15581 $ hg -R 'a repo' tag tag
Mads Kiilerich
tests: quote dummyssh in a way that works on windows too...
r16541 $ hg id --ssh "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/a repo"
Brad Hall
tag: don't allow tagging the null revision (issue1915)...
r17260 73649e48688a
Mads Kiilerich
ssh: quote remote paths (issue2983)
r15581
Mads Kiilerich
httppeer: reintroduce _abort that accidentally was removed in 167047ba3cfa...
r21188 $ hg id --ssh "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/a repo#noNoNO"
abort: unknown revision 'noNoNO'!
[255]
Matt Mackall
clone: don't %-escape the default destination (issue3145)
r17844 Test (non-)escaping of remote paths with spaces when cloning (issue3145):
$ hg clone --ssh "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/a repo"
destination directory: a repo
abort: destination 'a repo' is not empty
[255]
Mads Kiilerich
tests: improve test of hg-ssh and make the test pass on windows
r16608 Test hg-ssh using a helper script that will restore PYTHONPATH (which might
have been cleared by a hg.exe wrapper) and invoke hg-ssh with the right
parameters:
Mads Kiilerich
hg-ssh: use shlex for shell-like parsing of SSH_ORIGINAL_COMMAND...
r15897
Mads Kiilerich
tests: improve test of hg-ssh and make the test pass on windows
r16608 $ cat > ssh.sh << EOF
> userhost="\$1"
> SSH_ORIGINAL_COMMAND="\$2"
> export SSH_ORIGINAL_COMMAND
> PYTHONPATH="$PYTHONPATH"
> export PYTHONPATH
> python "$TESTDIR/../contrib/hg-ssh" "$TESTTMP/a repo"
> EOF
$ hg id --ssh "sh ssh.sh" "ssh://user@dummy/a repo"
Brad Hall
tag: don't allow tagging the null revision (issue1915)...
r17260 73649e48688a
Mads Kiilerich
hg-ssh: use %s for printing paths in error messages...
r16606
Mads Kiilerich
tests: improve test of hg-ssh and make the test pass on windows
r16608 $ hg id --ssh "sh ssh.sh" "ssh://user@dummy/a'repo"
remote: Illegal repository "$TESTTMP/a'repo" (glob)
Mads Kiilerich
hg-ssh: use shlex for shell-like parsing of SSH_ORIGINAL_COMMAND...
r15897 abort: no suitable response from remote hg!
[255]
Mads Kiilerich
hg-ssh: use %s for printing paths in error messages...
r16606
Mads Kiilerich
tests: improve test of hg-ssh and make the test pass on windows
r16608 $ hg id --ssh "sh ssh.sh" --remotecmd hacking "ssh://user@dummy/a'repo"
remote: Illegal command "hacking -R 'a'\''repo' serve --stdio"
Mads Kiilerich
hg-ssh: use shlex for shell-like parsing of SSH_ORIGINAL_COMMAND...
r15897 abort: no suitable response from remote hg!
[255]
Mads Kiilerich
tests: improve test of hg-ssh and make the test pass on windows
r16608 $ SSH_ORIGINAL_COMMAND="'hg' -R 'a'repo' serve --stdio" python "$TESTDIR/../contrib/hg-ssh"
Illegal command "'hg' -R 'a'repo' serve --stdio": No closing quotation
[255]
David Schleimer
hg-ssh: read-only flag...
r16836 Test hg-ssh in read-only mode:
$ cat > ssh.sh << EOF
> userhost="\$1"
> SSH_ORIGINAL_COMMAND="\$2"
> export SSH_ORIGINAL_COMMAND
> PYTHONPATH="$PYTHONPATH"
> export PYTHONPATH
> python "$TESTDIR/../contrib/hg-ssh" --read-only "$TESTTMP/remote"
> EOF
$ hg clone --ssh "sh ssh.sh" "ssh://user@dummy/$TESTTMP/remote" read-only-local
requesting all changes
adding changesets
adding manifests
adding file changes
Matt Mackall
clone: properly mark branches closed with --uncompressed (issue4428)...
r23126 added 6 changesets with 5 changes to 4 files (+1 heads)
David Schleimer
hg-ssh: read-only flag...
r16836 updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd read-only-local
$ echo "baz" > bar
$ hg ci -A -m "unpushable commit" bar
$ hg push --ssh "sh ../ssh.sh"
Adrian Buehlmann
tests/run-tests: avoid C:/ in arguments...
r16897 pushing to ssh://user@dummy/*/remote (glob)
David Schleimer
hg-ssh: read-only flag...
r16836 searching for changes
remote: Permission denied
remote: abort: prechangegroup.hg-ssh hook failed
remote: Permission denied
Pierre-Yves David
pushkey: gracefully handle prepushkey hook failure (issue4455)...
r23416 remote: pushkey-abort: prepushkey.hg-ssh hook failed
updating 6c0482d977a3 to public failed!
[1]
David Schleimer
hg-ssh: read-only flag...
r16836
$ cd ..
Gregory Szorc
test-ssh: verify that stderr from remote is printed (issue4336)...
r22247 stderr from remote commands should be printed before stdout from local code (issue4336)
$ hg clone remote stderr-ordering
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd stderr-ordering
$ cat >> localwrite.py << EOF
> from mercurial import exchange, extensions
>
> def wrappedpush(orig, repo, *args, **kwargs):
> res = orig(repo, *args, **kwargs)
> repo.ui.write('local stdout\n')
> return res
>
> def extsetup(ui):
> extensions.wrapfunction(exchange, 'push', wrappedpush)
> EOF
$ cat >> .hg/hgrc << EOF
> [paths]
> default-push = ssh://user@dummy/remote
> [ui]
> ssh = python "$TESTDIR/dummyssh"
> [extensions]
> localwrite = localwrite.py
> EOF
$ echo localwrite > foo
$ hg commit -m 'testing localwrite'
$ hg push
pushing to ssh://user@dummy/remote
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
remote: KABOOM
local stdout
$ cd ..
Matt Mackall
tests: unify test-ssh
r12414 $ cat dummylog
Mads Kiilerich
sshrepo: don't quote obviously safe strings (issue2983)...
r15622 Got arguments 1:user@dummy 2:hg -R nonexistent serve --stdio
Got arguments 1:user@dummy 2:hg -R /$TESTTMP/nonexistent serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Durham Goode
clone: fix copying bookmarks in uncompressed clones (issue4430)...
r23116 Got arguments 1:user@dummy 2:hg -R local-stream serve --stdio
Mads Kiilerich
sshrepo: don't quote obviously safe strings (issue2983)...
r15622 Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R local serve --stdio
Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Mike Hommey
changegroup: use a copy of hookargs when invoking the changegroup hook...
r22960 changegroup-in-remote hook: HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1
Mads Kiilerich
sshrepo: don't quote obviously safe strings (issue2983)...
r15622 Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Adrian Buehlmann
tests/printenv.py: eliminate trailing spaces on output
r16982 changegroup-in-remote hook: HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1
Mads Kiilerich
sshrepo: don't quote obviously safe strings (issue2983)...
r15622 Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg init 'a repo'
Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
Matt Mackall
clone: don't %-escape the default destination (issue3145)
r17844 Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
Mads Kiilerich
httppeer: reintroduce _abort that accidentally was removed in 167047ba3cfa...
r21188 Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
Gregory Szorc
test-ssh: verify that stderr from remote is printed (issue4336)...
r22247 Got arguments 1:user@dummy 2:hg -R remote serve --stdio
changegroup-in-remote hook: HG_NODE=65c38f4125f9602c8db4af56530cc221d93b8ef8 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1