typing: add type hints to the `opener` attributes and arguments of revlog
When making revlog and filelog classes visible to pytype, it got confused quite
a bit in `mercurial/revlogutils/rewrite.py`, thinking it had a plain `Callable`,
and flagging additional methods on it like `join()` and `rename()`. I couldn't
figure out how it reduced to that (and PyCharm flagged `opener` references as
`Any`), but this makes it happy. So make this change before making the classes
visible.
The vfs class hierarchy is a bit wonky (e.g. `filteredvfs` is not a `vfs`), so
this may need to be revisited with a Protocol class that covers all of the `vfs`
classes. But for now, everything works.
$ cat <<EOF >> $HGRCPATH
> [extensions]
> hooklib =
>
> [phases]
> publish = False
> EOF
$ hg init a
$ hg --cwd a debugbuilddag '.:parent.:childa*parent/childa<parent@otherbranch./childa'
$ hg --cwd a log -G
o changeset: 4:a9fb040caedd
|\ branch: otherbranch
| | tag: tip
| | parent: 3:af739dfc49b4
| | parent: 1:66f7d451a68b
| | user: debugbuilddag
| | date: Thu Jan 01 00:00:04 1970 +0000
| | summary: r4
| |
| o changeset: 3:af739dfc49b4
| | branch: otherbranch
| | parent: 0:1ea73414a91b
| | user: debugbuilddag
| | date: Thu Jan 01 00:00:03 1970 +0000
| | summary: r3
| |
+---o changeset: 2:a6b287721c3b
| |/ parent: 0:1ea73414a91b
| | parent: 1:66f7d451a68b
| | user: debugbuilddag
| | date: Thu Jan 01 00:00:02 1970 +0000
| | summary: r2
| |
o | changeset: 1:66f7d451a68b
|/ tag: childa
| user: debugbuilddag
| date: Thu Jan 01 00:00:01 1970 +0000
| summary: r1
|
o changeset: 0:1ea73414a91b
tag: parent
user: debugbuilddag
date: Thu Jan 01 00:00:00 1970 +0000
summary: r0
$ hg init b
$ cat <<EOF >> b/.hg/hgrc
> [hooks]
> pretxnchangegroup.reject_merge_commits = \
> python:hgext.hooklib.reject_merge_commits.hook
> EOF
$ hg --cwd b pull ../a -r a6b287721c3b
pulling from ../a
adding changesets
adding manifests
adding file changes
error: pretxnchangegroup.reject_merge_commits hook failed: a6b287721c3b rejected as merge on the same branch. Please consider rebase.
transaction abort!
rollback completed
abort: a6b287721c3b rejected as merge on the same branch. Please consider rebase.
[255]
$ hg --cwd b pull ../a -r 1ea73414a91b
pulling from ../a
adding changesets
adding manifests
adding file changes
added 1 changesets with 0 changes to 0 files
new changesets 1ea73414a91b (1 drafts)
(run 'hg update' to get a working copy)
$ hg --cwd b pull ../a -r a9fb040caedd
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 0 changes to 0 files
new changesets 66f7d451a68b:a9fb040caedd (3 drafts)
(run 'hg update' to get a working copy)