Mercurial > hg
view tests/test-hooklib-enforce_draft_commits.t @ 51274:bec6e9c108fd
matchers: use correct method for finding index in vector
The path matcher has an optimization for when all paths are `rootfilesin:`. This
optimization exists in both Python and Rust. However, the Rust implementation
currently has a bug that makes it fail in most cases. The bug is that it
`rfind()` where it was clearly intended to use `rposition()`. This patch fixes
that and adds a test.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 18 Dec 2023 14:51:20 -0800 |
parents | 4cabeea6d214 |
children |
line wrap: on
line source
$ cat <<EOF >> $HGRCPATH > [extensions] > hooklib = > > [phases] > publish = False > EOF $ hg init a $ hg --cwd a debugbuilddag . $ hg --cwd a phase --public 0 $ hg init b $ cat <<EOF >> b/.hg/hgrc > [hooks] > pretxnclose-phase.enforce_draft_commits = \ > python:hgext.hooklib.enforce_draft_commits.hook > EOF $ hg --cwd b pull ../a pulling from ../a requesting all changes adding changesets adding manifests adding file changes error: pretxnclose-phase.enforce_draft_commits hook failed: New changeset 1ea73414a91b in phase 'public' rejected transaction abort! rollback completed abort: New changeset 1ea73414a91b in phase 'public' rejected [255] $ hg --cwd a phase --force --draft 0 $ hg --cwd b pull ../a pulling from ../a requesting all changes 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 a phase --public 0 $ hg --cwd b pull ../a pulling from ../a searching for changes no changes found error: pretxnclose-phase.enforce_draft_commits hook failed: Phase change from 'draft' to 'public' for 1ea73414a91b rejected abort: Phase change from 'draft' to 'public' for 1ea73414a91b rejected [255]