Mercurial > hg
view tests/test-directaccess.t @ 48014:0dc4cc654d96
typing: drop annotations on `mercurial/logcmdutil.walkopts` attributes
Pytype 2021-09-09 must have learned some things about `@attr`, because while
these were presumably required to help it before (c1d0f83d62c4::9a26fea2b518 and
c11099cc1de4::224c786f4fce), these instances now get flagged as an assignment
mismatch:
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 717, in walkopts: Type annotation for pats does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 718, in walkopts: Type annotation for opts does not match type of assignment [annotation-type-mismatch]
Annotation: Dict[bytes, Any]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 722, in walkopts: Type annotation for revspec does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 725, in walkopts: Type annotation for bookmarks does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 726, in walkopts: Type annotation for branches does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 727, in walkopts: Type annotation for date does not match type of assignment [annotation-type-mismatch]
Annotation: Optional[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 728, in walkopts: Type annotation for keywords does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 729, in walkopts: Type annotation for no_merges does not match type of assignment [annotation-type-mismatch]
Annotation: bool
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 730, in walkopts: Type annotation for only_merges does not match type of assignment [annotation-type-mismatch]
Annotation: bool
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 731, in walkopts: Type annotation for prune_ancestors does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 732, in walkopts: Type annotation for users does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 735, in walkopts: Type annotation for include_pats does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 736, in walkopts: Type annotation for exclude_pats does not match type of assignment [annotation-type-mismatch]
Annotation: List[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 739, in walkopts: Type annotation for follow does not match type of assignment [annotation-type-mismatch]
Annotation: int
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 743, in walkopts: Type annotation for force_changelog_traversal does not match type of assignment [annotation-type-mismatch]
Annotation: bool
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 747, in walkopts: Type annotation for filter_revisions_by_pats does not match type of assignment [annotation-type-mismatch]
Annotation: bool
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 750, in walkopts: Type annotation for sort_revisions does not match type of assignment [annotation-type-mismatch]
Annotation: Optional[bytes]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
File "/mnt/c/Users/Matt/hg/mercurial/logcmdutil.py", line 753, in walkopts: Type annotation for limit does not match type of assignment [annotation-type-mismatch]
Annotation: Optional[int]
Assignment: mercurial.thirdparty.attr._make._CountingAttr
Differential Revision: https://phab.mercurial-scm.org/D11474
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 20 Sep 2021 11:22:27 -0400 |
parents | 95c4cca641f6 |
children | 5ced12cfa41b |
line wrap: on
line source
Tests for access level on hidden commits by various commands on based of their type. Setting the required config to start this $ cat >> $HGRCPATH <<EOF > [experimental] > evolution=createmarkers, allowunstable > directaccess=True > directaccess.revnums=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 --config experimental.directaccess.revnums=False abort: hidden revision '2' was rewritten as: 2443a0e66469 (use --hidden to access hidden revisions) [255] $ hg exp 2 # 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 -r 2 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 identify -r 2 28ad74487de9 $ hg status --change 2 A c $ hg status --change 2 --config experimental.directaccess.revnums=False abort: hidden revision '2' was rewritten as: 2443a0e66469 (use --hidden to access hidden revisions) [255] $ hg diff -c 2 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 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 annotate` $ hg annotate -r 28ad74 a 0: foo `hg status` $ hg status --change 28ad74 A c `hg archive` This should not throw error $ hg archive -r 28ad74 foo `hg update` $ hg up 28ad74 1 files updated, 0 files merged, 0 files removed, 0 files unresolved updated to hidden changeset 28ad74487de9 (hidden revision '28ad74487de9' was rewritten as: 2443a0e66469) $ hg up 3 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg up 0 files updated, 0 files merged, 0 files removed, 0 files unresolved `hg revert` $ hg revert -r 28ad74 --all reverting c $ hg diff diff -r 2443a0e66469 c --- a/c Thu Jan 01 00:00:00 1970 +0000 +++ b/c Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +1,1 @@ foo -bar Test special hash/rev $ hg log -qr 'null:wdir() & 000000000000' -1:000000000000 $ hg log -qr 'null:wdir() & ffffffffffff' 2147483647:ffffffffffff $ hg log -qr 'null:wdir() & rev(-1)' -1:000000000000 $ hg log -qr 'null:wdir() & rev(2147483647)' 2147483647:ffffffffffff $ hg log -qr 'null:wdir() & 2147483647' 2147483647:ffffffffffff Commands with undefined intent should not work right now $ hg phase -r 28ad74 abort: hidden revision '28ad74' was rewritten as: 2443a0e66469 (use --hidden to access hidden revisions) [255] $ hg phase -r 2 abort: hidden revision '2' was rewritten as: 2443a0e66469 (use --hidden to access hidden revisions) [255] Setting a bookmark will make that changeset unhidden, so this should come in end $ hg bookmarks -r 28ad74 book bookmarking hidden changeset 28ad74487de9 (hidden revision '28ad74487de9' was rewritten as: 2443a0e66469) $ hg bookmarks book 2:28ad74487de9