Mercurial > hg
annotate tests/test-ssh-repoerror.t @ 42415:c767e655ffda
narrow: use narrow_widen wireproto command to widen in case of ellipses
Few releases ago, we introduce narrow_widen wireproto command to be used to widen
narrow repositories. Before this patch, that was used in non-ellipses cases
only. In ellipses cases, we still do exchange.pull() which can pull more data
than required.
After this patch, the client will first check whether server supports doing
ellipses widening using wireproto command or not by checking server's wireproto
capability. If the server is upto date and support latest ellipses capability,
we call the wireproto command. Otherwise we fallback to exchange.pull() like
before.
The compat code make sure that things works even if one of the client or server
is old. The initial version of this patch does not had this compat code. It's
added to help Google release things smoothly internally. I plan to drop the
compat code before the upcoming major release.
Due to change to wireproto command, the code looks a bit dirty, next patches
will clean that up.
Differential Revision: https://phab.mercurial-scm.org/D6436
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Wed, 22 May 2019 02:59:48 +0530 |
parents | b6673e9bdcf6 |
children | 95c4cca641f6 |
rev | line source |
---|---|
39382
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
1 #require unix-permissions no-root |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
2 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
3 initial setup |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
4 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
5 $ cat << EOF >> $HGRCPATH |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
6 > [ui] |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39382
diff
changeset
|
7 > ssh="$PYTHON" "$TESTDIR/dummyssh" |
39382
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
8 > EOF |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
9 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
10 repository itself is non-readable |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
11 --------------------------------- |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
12 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
13 $ hg init no-read |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
14 $ hg id ssh://user@dummy/no-read |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
15 000000000000 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
16 $ chmod a-rx no-read |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
17 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
18 $ hg id ssh://user@dummy/no-read |
40227
f4893b59230f
py3: more globing of things to make output compatible between py2 and py3
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39707
diff
changeset
|
19 remote: abort: Permission denied: *$TESTTMP/no-read/.hg* (glob) |
39382
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
20 abort: no suitable response from remote hg! |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
21 [255] |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
22 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
23 special case files are visible, but unreadable |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
24 ---------------------------------------------- |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
25 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
26 This is "similar" to the test above, but the directory is "traversable". This |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
27 seems an unexpected case in real life, but we test it anyway. |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
28 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
29 $ hg init other |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
30 $ hg id ssh://user@dummy/other |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
31 000000000000 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
32 $ for item in `find other | sort -r` ; do |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
33 > chmod a-r $item |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
34 > done |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
35 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
36 $ hg id ssh://user@dummy/other |
41420
b6673e9bdcf6
dispatch: quote filename in IOError as well
Yuya Nishihara <yuya@tcha.org>
parents:
40227
diff
changeset
|
37 remote: abort: Permission denied: '$TESTTMP/other/.hg/requires' |
39382
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
38 abort: no suitable response from remote hg! |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
39 [255] |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
40 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
41 directory toward the repository is read only |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
42 -------------------------------------------- |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
43 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
44 $ mkdir deep |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
45 $ hg init deep/nested |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
46 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
47 $ hg id ssh://user@dummy/deep/nested |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
48 000000000000 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
49 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
50 $ chmod a-rx deep |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
51 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
52 $ hg id ssh://user@dummy/deep/nested |
40227
f4893b59230f
py3: more globing of things to make output compatible between py2 and py3
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39707
diff
changeset
|
53 remote: abort: Permission denied: *$TESTTMP/deep/nested/.hg* (glob) |
39382
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
54 abort: no suitable response from remote hg! |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
55 [255] |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
56 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
57 repository has wrong requirement |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
58 -------------------------------- |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
59 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
60 $ hg init repo-future |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
61 $ hg id ssh://user@dummy/repo-future |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
62 000000000000 |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
63 $ echo flying-car >> repo-future/.hg/requires |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
64 $ hg id ssh://user@dummy/repo-future |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
65 remote: abort: repository requires features unknown to this Mercurial: flying-car! |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
66 remote: (see https://mercurial-scm.org/wiki/MissingRequirement for more information) |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
67 abort: no suitable response from remote hg! |
a7e22dd31f54
test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
68 [255] |