tests/test-check-code-hg.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Thu, 20 Mar 2014 00:10:45 +0900
changeset 20786 d666da075b91
parent 20239 16b5f498f49c
child 21223 c35c027f5f43
permissions -rw-r--r--
mq: omit ".hgsubstate" from qnew/qrefresh target list for consistent node hash Before this patch, even if specified file patterns and -I/-X options cause listing ".hgsubstate" up in the target list, qnew/qrefresh put ".hgsubstate" into the target list individually and forcibly. This changes how many times ".hgsubstate" appear in the target list according to run-time conditions, and causes inconsistent node hash, even though revision content is same, because node hash calculation uses the specified target list directly (without duplication check or so). This patch always omits ".hgsubstate" from qnew/qrefresh target list for consistent node hash. This omitting doesn't miss including ".hgsubstate" changes, because: - "localrepository.commit()" puts ".hgsubstate" into the target list for "commitctx()" forcibly if needed - "mq.putsubstate2changes()" puts ".hgsubstate" into the target list for "patch.diff()" if it is not yet listed up

  $ check_code="$TESTDIR"/../contrib/check-code.py
  $ cd "$TESTDIR"/..
  $ if hg identify -q > /dev/null 2>&1; then :
  > else
  >     echo "skipped: not a Mercurial working dir" >&2
  >     exit 80
  > fi

Prepare check for Python files without py extension

  $ cp \
  >   hg \
  >   hgweb.cgi \
  >   contrib/convert-repo \
  >   contrib/dumprevlog \
  >   contrib/hgweb.fcgi \
  >   contrib/hgweb.wsgi \
  >   contrib/simplemerge \
  >   contrib/undumprevlog \
  >   i18n/hggettext \
  >   i18n/posplit \
  >   tests/hghave \
  >   tests/dummyssh \
  >   "$TESTTMP"/
  $ for f in "$TESTTMP"/*; do mv "$f" "$f.py"; done

New errors are not allowed. Warnings are strongly discouraged.
(The writing "no-che?k-code" is for not skipping this file when checking.)

  $ { hg manifest 2>/dev/null; ls "$TESTTMP"/*.py | sed 's-\\-/-g'; } |
  >   xargs "$check_code" --warnings --per-file=0 || false
  Skipping hgext/zeroconf/Zeroconf.py it has no-che?k-code (glob)
  Skipping i18n/polib.py it has no-che?k-code (glob)
  Skipping mercurial/httpclient/__init__.py it has no-che?k-code (glob)
  Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob)
  Skipping mercurial/httpclient/socketutil.py it has no-che?k-code (glob)