Mercurial > hg
view tests/test-hooklib-enforce_draft_commits.t @ 45239:13814622b3b1
commitctx: extract all the file preparation logic in a new function
Before we actually start to create a new commit we have a large block of logic
that do the necessary file and manifest commit and that determine which files
are been affected by the commit (and how).
This is a complex process on its own. It return a "simple" output that can be
fed to the next step. The output itself is not that simple as we return a lot of
individual items (files, added, removed, ...). My next step (and actual goal for
this cleanup) will be to simplify the return by returning a richer object that
will be more suited for the variation of data we want to store.
After this changeset the `commitctx` is a collection of smaller function with
limited scope. The largest one is still `_filecommit` without about 100 lines of
code.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 23 Jul 2020 23:52:31 +0200 |
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]