narrow_widen_acl: enforce narrowacl in narrow_widen (SEC)
Reviewer note: this was sent by the author as a simple bugfix, but can be
considered a security patch, since it allows users to access things outside
of the ACL, hence the (SEC) prefix.
However, this affects the `narrow` extention which is still marked as
experimental and has relatively few users aside from large companies with
their own security layers on top from what we can gather.
We feel (Alphare: or at least, I feel) like pinging the packaging list is
enough in this case.
$ 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)