tests/test-hgcia.t
author Siddharth Agarwal <sid0@fb.com>
Sat, 12 Jul 2014 17:59:03 -0700
changeset 21880 e6754f5e4cf7
parent 16913 f2719b387380
permissions -rw-r--r--
context: generate filtered manifest efficiently for exact matchers When the matcher is exact, there's no reason to iterate over the entire manifest. It's much more efficient to iterate over the list of files instead. For a repository with approximately 300,000 files, this speeds up hg log -l10 --patch --follow for a frequently modified file from 16.5 seconds to 10.5 seconds.

Test the CIA extension

  $ cat >> $HGRCPATH <<EOF
  > [extensions]
  > hgcia=
  > 
  > [hooks]
  > changegroup.cia = python:hgext.hgcia.hook
  > 
  > [web]
  > baseurl = http://hgserver/
  > 
  > [cia]
  > user = testuser
  > project = testproject
  > test = True
  > EOF

  $ hg init src
  $ hg init cia
  $ cd src
  $ echo foo > foo
  $ hg ci -Amfoo
  adding foo
  $ hg push ../cia
  pushing to ../cia
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files
  
  <message>
    <generator>
      <name>Mercurial (hgcia)</name>
      <version>0.1</version>
      <url>http://hg.kublai.com/mercurial/hgcia</url>
      <user>testuser</user>
    </generator>
    <source>
  <project>testproject</project>
  <branch>default</branch>
  </source>
    <body>
      <commit>
        <author>test</author>
        <version>0:e63c23eaa88a</version>
        <log>foo</log>
        <url>http://hgserver/rev/e63c23eaa88a</url>
        <files><file uri="http://hgserver/file/e63c23eaa88a/foo" action="add">foo</file></files>
      </commit>
    </body>
    <timestamp>0</timestamp>
  </message>

  $ cat >> $HGRCPATH <<EOF
  > strip = 0
  > EOF

  $ echo bar > bar
  $ hg ci -Ambar
  adding bar
  $ hg push ../cia
  pushing to ../cia
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files
  
  <message>
    <generator>
      <name>Mercurial (hgcia)</name>
      <version>0.1</version>
      <url>http://hg.kublai.com/mercurial/hgcia</url>
      <user>testuser</user>
    </generator>
    <source>
  <project>testproject</project>
  <branch>default</branch>
  </source>
    <body>
      <commit>
        <author>test</author>
        <version>1:c0c7cf58edc5</version>
        <log>bar</log>
        <url>http://hgserver/$TESTTMP/cia/rev/c0c7cf58edc5</url>
        <files><file uri="http://hgserver/$TESTTMP/cia/file/c0c7cf58edc5/bar" action="add">bar</file></files>
      </commit>
    </body>
    <timestamp>0</timestamp>
  </message>

  $ cd ..