diff -r bc15e37ecc16 -r ef0e3cc684b3 tests/test-remote-hidden.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-remote-hidden.t Mon May 21 17:28:35 2018 +0200 @@ -0,0 +1,97 @@ +======================================================== +Test the ability to access a hidden revision on a server +======================================================== + +#require serve + + $ . $TESTDIR/testlib/obsmarker-common.sh + $ cat >> $HGRCPATH << EOF + > [phases] + > # public changeset are not obsolete + > publish=false + > [experimental] + > evolution=all + > [ui] + > logtemplate='{rev}:{node|short} {desc} [{phase}]\n' + > EOF + +Setup a simple repository with some hidden revisions +---------------------------------------------------- + +Testing the `served.hidden` view + + $ hg init repo-with-hidden + $ cd repo-with-hidden + + $ echo 0 > a + $ hg ci -qAm "c_Public" + $ hg phase --public + $ echo 1 > a + $ hg ci -m "c_Amend_Old" + $ echo 2 > a + $ hg ci -m "c_Amend_New" --amend + $ hg up ".^" + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo 3 > a + $ hg ci -m "c_Pruned" + created new head + $ hg debugobsolete --record-parents `getid 'desc("c_Pruned")'` -d '0 0' + obsoleted 1 changesets + $ hg up ".^" + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo 4 > a + $ hg ci -m "c_Secret" --secret + created new head + $ echo 5 > a + $ hg ci -m "c_Secret_Pruned" --secret + $ hg debugobsolete --record-parents `getid 'desc("c_Secret_Pruned")'` -d '0 0' + obsoleted 1 changesets + $ hg up null + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + + $ hg log -G -T '{rev}:{node|short} {desc} [{phase}]\n' --hidden + x 5:8d28cbe335f3 c_Secret_Pruned [secret] + | + o 4:1c6afd79eb66 c_Secret [secret] + | + | x 3:5d1575e42c25 c_Pruned [draft] + |/ + | o 2:c33affeb3f6b c_Amend_New [draft] + |/ + | x 1:be215fbb8c50 c_Amend_Old [draft] + |/ + o 0:5f354f46e585 c_Public [public] + + $ hg debugobsolete + be215fbb8c5090028b00154c1fe877ad1b376c61 c33affeb3f6b4e9621d1839d6175ddc07708807c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'} + 5d1575e42c25b7f2db75cd4e0b881b1c35158fae 0 {5f354f46e5853535841ec7a128423e991ca4d59b} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + 8d28cbe335f311bc89332d7bbe8a07889b6914a0 0 {1c6afd79eb6663275bbe30097e162b1c24ced0f0} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + + $ cd .. + +Test the feature +================ + +Check that the `served.hidden` repoview +--------------------------------------- + + $ hg -R repo-with-hidden serve -p $HGPORT -d --pid-file hg.pid --config web.view=served.hidden + $ cat hg.pid >> $DAEMON_PIDS + +changesets in secret and higher phases are not visible through hgweb + + $ hg -R repo-with-hidden log --template "revision: {rev}\\n" --rev "reverse(not secret())" + revision: 2 + revision: 0 + $ hg -R repo-with-hidden log --template "revision: {rev}\\n" --rev "reverse(not secret())" --hidden + revision: 3 + revision: 2 + revision: 1 + revision: 0 + $ get-with-headers.py localhost:$HGPORT 'log?style=raw' | grep revision: + revision: 3 + revision: 2 + revision: 1 + revision: 0 + + $ killdaemons.py