view tests/test-check-commit.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 33817e09c663
children
line wrap: on
line source

#require test-repo

Enable obsolescence to avoid the warning issue when obsmarker are found

  $ . "$TESTDIR/helpers-testrepo.sh"

Go back in the hg repo

  $ cd $TESTDIR/..

  $ REVSET='not public() and ::. and not desc("# no-check-commit")'

  $ mkdir "$TESTTMP/p"
  $ REVS=`testrepohg log -r "$REVSET" -T.`
  $ if [ -n "$REVS" ] ; then
  >   testrepohg export --git -o "$TESTTMP/p/%n-%h" -r "$REVSET"
  >   for f in `ls "$TESTTMP/p"`; do
  >      contrib/check-commit < "$TESTTMP/p/$f" > "$TESTTMP/check-commit.out"
  >      if [ $? -ne 0 ]; then
  >          node="${f##*-}"
  >          echo "Revision $node does not comply with rules"
  >          echo '------------------------------------------------------'
  >          cat ${TESTTMP}/check-commit.out
  >          echo
  >     fi
  >   done
  > fi