view tests/test-check-commit-hg.t @ 24783:a7f8e3584ef3

diff: pass the diff matcher to the copy logic This passes the existing diff matcher instance down to the copy logic so copy tracing can be more efficient when possible and only trace copies for matching files. This only actually affects forwardcopies (i.e. Given A<-B<-C<-D, it works for 'hg diff -r B -r D foo.txt', but not for 'hg diff -r D -r B foo.txt') since backward copies require walking all histories, and not just the individual file's. This reduces 'hg diff -r A -r B foo.txt' time from 15s to 1s when A and B have 80,000 files different.
author Durham Goode <durham@fb.com>
date Thu, 16 Apr 2015 11:31:48 -0700
parents 80a37f706011
children
line wrap: on
line source

#require test-repo

Enable obsolescence to avoid the warning issue when obsmarker are found

  $ cat >> $HGRCPATH << EOF
  > [experimental]
  > evolution=createmarkers
  > EOF

Go back in the hg repo

  $ cd $TESTDIR/..

  $ for node in `hg log --rev 'draft() and ::.' --template '{node|short}\n'`; do
  >    hg export $node | contrib/check-commit > ${TESTTMP}/check-commit.out
  >    if [ $? -ne 0 ]; then
  >        echo "Revision $node does not comply to rules"
  >        echo '------------------------------------------------------'
  >        cat ${TESTTMP}/check-commit.out
  >        echo
  >   fi
  > done