--- a/tests/test-remote-hidden.t Sat Apr 13 03:44:47 2019 +0200
+++ b/tests/test-remote-hidden.t Sat Apr 13 03:44:55 2019 +0200
@@ -6,6 +6,8 @@
$ . $TESTDIR/testlib/obsmarker-common.sh
$ cat >> $HGRCPATH << EOF
+ > [ui]
+ > ssh = "$PYTHON" "$RUNTESTDIR/dummyssh"
> [phases]
> # public changeset are not obsolete
> publish=false
@@ -305,6 +307,98 @@
abort: filtered revision 'be215fbb8c50' (not in 'served' subset)
[255]
+Test --remote-hidden for ssh peer
+----------------------------------
+
+ $ hg clone --pull ssh://user@dummy/repo-with-hidden client-ssh
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 2 changesets with 2 changes to 1 files
+ 2 new obsolescence markers
+ new changesets 5f354f46e585:c33affeb3f6b (1 drafts)
+ updating to branch default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg -R client-ssh log -G --hidden -v
+ @ 1:c33affeb3f6b c_Amend_New [draft]
+ |
+ o 0:5f354f46e585 c_Public [public]
+
+
+Check on a server that do not allow hidden access:
+``````````````````````````````````````````````````
+
+pulling an hidden changeset should fail:
+
+ $ hg -R client-ssh pull -r be215fbb8c50
+ pulling from ssh://user@dummy/repo-with-hidden
+ abort: filtered revision 'be215fbb8c50' (not in 'served' subset)
+ [255]
+
+pulling an hidden changeset with --remote-hidden should succeed:
+
+ $ hg -R client-ssh pull --remote-hidden -r be215fbb8c50
+ pulling from ssh://user@dummy/repo-with-hidden
+ remote: ignoring request to access hidden changeset by unauthorized user: * (glob)
+ abort: filtered revision 'be215fbb8c50' (not in 'served' subset)
+ [255]
+ $ hg -R client-ssh log -G --hidden -v
+ @ 1:c33affeb3f6b c_Amend_New [draft]
+ |
+ o 0:5f354f46e585 c_Public [public]
+
+
+Check on a server that do allow hidden access:
+``````````````````````````````````````````````
+
+ $ cat << EOF >> repo-with-hidden/.hg/hgrc
+ > [experimental]
+ > server.allow-hidden-access=*
+ > EOF
+
+pulling an hidden changeset should fail:
+
+ $ hg -R client-ssh pull -r be215fbb8c50
+ pulling from ssh://user@dummy/repo-with-hidden
+ abort: filtered revision 'be215fbb8c50' (not in 'served' subset)
+ [255]
+
+pulling an hidden changeset with --remote-hidden should succeed:
+
+ $ hg -R client-ssh pull --remote-hidden -r be215fbb8c50
+ pulling from ssh://user@dummy/repo-with-hidden
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files (+1 heads)
+ (1 other changesets obsolete on arrival)
+ (run 'hg heads' to see heads)
+ $ hg -R client-ssh log -G --hidden -v
+ x 2:be215fbb8c50 c_Amend_Old [draft]
+ |
+ | @ 1:c33affeb3f6b c_Amend_New [draft]
+ |/
+ o 0:5f354f46e585 c_Public [public]
+
+
+Pulling a secret changeset is still forbidden:
+
+secret visible:
+
+ $ hg -R client-ssh pull --remote-hidden -r 8d28cbe335f3
+ pulling from ssh://user@dummy/repo-with-hidden
+ abort: filtered revision '8d28cbe335f3' (not in 'served.hidden' subset)
+ [255]
+
+secret hidden:
+
+ $ hg -R client-ssh pull --remote-hidden -r 1c6afd79eb66
+ pulling from ssh://user@dummy/repo-with-hidden
+ abort: filtered revision '1c6afd79eb66' (not in 'served.hidden' subset)
+ [255]
+
=============
Final cleanup
=============