tests/test-mq-subrepo-svn.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Mon, 27 Oct 2014 11:59:39 +0100
changeset 25540 f08ad5d17e43
parent 24471 1ff35d76421c
child 26374 048e41e9a6ac
permissions -rw-r--r--
revsetbenchmarks: allow running multiple variants per revset The current benchmarks were only testing the whole iteration. This is suboptimal because some changes are meaningful for things like first result, minimum or sorting. We introduce a "variants" feature that let you systematically add some variants to all revsets tested. A typical variants value would be 'plain,min,last,sort'. When testing 'all()' it will also provide testing for: - all() - min(all()) - last(all()) - sort(sort) and output: plain min last sort 0) 0.034568 0.037857 0.000074 0.034238 1) 0.011358 32% 0.020181 53% 0.000080 108% 0.011405 33% Using revsets (who hit the API) instead of the internal API add some overhead, but the overhead should be the same everywhere so it still allow comparison. This is is more simple to implement and allows comparison with older versions who do not have the same API.

#require svn13

  $ cat <<EOF >> $HGRCPATH
  > [extensions]
  > mq =
  > [diff]
  > nodates = 1
  > EOF

fn to create new repository, and cd into it
  $ mkrepo() {
  >     hg init $1
  >     cd $1
  >     hg qinit
  > }


handle svn subrepos safely

  $ svnadmin create svn-repo-2499

  $ SVNREPOPATH=`pwd`/svn-repo-2499/project
#if windows
  $ SVNREPOURL=file:///`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
#else
  $ SVNREPOURL=file://`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
#endif

  $ mkdir -p svn-project-2499/trunk
  $ svn import -m 'init project' svn-project-2499 "$SVNREPOURL"
  Adding         svn-project-2499/trunk (glob)
  
  Committed revision 1.

qnew on repo w/svn subrepo
  $ mkrepo repo-2499-svn-subrepo
  $ svn co "$SVNREPOURL"/trunk sub
  Checked out revision 1.
  $ echo 'sub = [svn]sub' >> .hgsub
  $ hg add .hgsub
  $ hg status -S -X '**/format'
  A .hgsub
  $ hg qnew -m0 0.diff
  $ cd sub
  $ echo a > a
  $ svn add a
  A         a
  $ svn st
  A*    a (glob)
  $ cd ..
  $ hg status -S        # doesn't show status for svn subrepos (yet)
  $ hg qnew -m1 1.diff
  abort: uncommitted changes in subrepository 'sub'
  [255]

  $ cd ..