diff --git a/tests/test-directaccess.t b/tests/test-directaccess.t new file mode 100644 --- /dev/null +++ b/tests/test-directaccess.t @@ -0,0 +1,135 @@ +Tests for access level on hidden commits by various commands on based of their +type. + +Setting the required config to start this + + $ cat >> $HGRCPATH < [experimental] + > evolution=createmarkers, allowunstable + > directaccess=True + > [extensions] + > amend = + > EOF + + $ hg init repo + $ cd repo + $ for ch in a b c; do touch $ch; echo "foo" >> $ch; hg ci -Aqm "Added "$ch; done + + $ hg log -G -T '{rev}:{node} {desc}' --hidden + @ 2:28ad74487de9599d00d81085be739c61fc340652 Added c + | + o 1:29becc82797a4bc11ec8880b58eaecd2ab3e7760 Added b + | + o 0:18d04c59bb5d2d4090ad9a5b59bd6274adb63add Added a + + $ echo "bar" >> c + $ hg amend + + $ hg log -G -T '{rev}:{node} {desc}' --hidden + @ 3:2443a0e664694756d8b435d06b6ad84f941b6fc0 Added c + | + | x 2:28ad74487de9599d00d81085be739c61fc340652 Added c + |/ + o 1:29becc82797a4bc11ec8880b58eaecd2ab3e7760 Added b + | + o 0:18d04c59bb5d2d4090ad9a5b59bd6274adb63add Added a + +Testing read only commands on the hidden revision + +Testing with rev number + + $ hg exp 2 + abort: hidden revision '2'! + (use --hidden to access hidden revisions) + [255] + + $ hg log -r 2 + abort: hidden revision '2'! + (use --hidden to access hidden revisions) + [255] + + $ hg identify -r 2 + abort: hidden revision '2'! + (use --hidden to access hidden revisions) + [255] + + $ hg status --change 2 + abort: hidden revision '2'! + (use --hidden to access hidden revisions) + [255] + + $ hg diff -c 2 + abort: hidden revision '2'! + (use --hidden to access hidden revisions) + [255] + +Testing with hash + +`hg export` + + $ hg exp 28ad74 + # HG changeset patch + # User test + # Date 0 0 + # Thu Jan 01 00:00:00 1970 +0000 + # Node ID 28ad74487de9599d00d81085be739c61fc340652 + # Parent 29becc82797a4bc11ec8880b58eaecd2ab3e7760 + Added c + + diff -r 29becc82797a -r 28ad74487de9 c + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/c Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +foo + +`hg log` + + $ hg log -r 28ad74 + changeset: 2:28ad74487de9 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + obsolete: rewritten using amend as 3:2443a0e66469 + summary: Added c + +`hg cat` + + $ hg cat -r 28ad74 c + foo + +`hg diff` + + $ hg diff -c 28ad74 + diff -r 29becc82797a -r 28ad74487de9 c + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/c Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +foo + +`hg files` + + $ hg files -r 28ad74 + a + b + c + +`hg identify` + + $ hg identify -r 28ad74 + 28ad74487de9 + +`hg status` + + $ hg status --change 28ad74 + A c + +Commands with undefined cmdtype should not work right now + + $ hg phase -r 28ad74 + abort: hidden revision '28ad74'! + (use --hidden to access hidden revisions) + [255] + + $ hg phase -r 2 + abort: hidden revision '2'! + (use --hidden to access hidden revisions) + [255]