view tests/test-convert-svn-startrev.t @ 23288:2b9bc7963504

revlog: increase I/O bound to 4x the amount of data consumed This doesn't affect normal clones since they'd be bound by the CPU bound below anyway -- it does, however, improve generaldelta clones significantly. This also results in better deltaing for generaldelta clones -- in generaldelta clones, we calculate deltas with respect to the closest base if it has a higher revision number than either parent. If the base is on a significantly different branch, this can result in pointlessly massive deltas. This reduces the number of bases and hence the number of bad deltas. Empirically, for a highly branchy repository, this resulted in an improvement of around 15% to manifest size.
author Siddharth Agarwal <sid0@fb.com>
date Tue, 11 Nov 2014 20:08:19 -0800
parents 7a9cbb315d84
children
line wrap: on
line source

#require svn svn-bindings

  $ cat >> $HGRCPATH <<EOF
  > [extensions]
  > convert =
  > EOF
  $ convert()
  > {
  >     startrev=$1
  >     repopath=A-r$startrev-hg
  >     hg convert --config convert.svn.startrev=$startrev \
  >         --config convert.svn.trunk=branches/branch1 \
  >         --config convert.svn.branches="  " \
  >         --config convert.svn.tags= \
  >         --datesort svn-repo $repopath
  >     hg -R $repopath log -G \
  >         --template '{rev} {desc|firstline} files: {files}\n'
  >     echo
  > }

  $ svnadmin create svn-repo
  $ svnadmin load -q svn-repo < "$TESTDIR/svn/startrev.svndump"

Convert before branching point

  $ convert 3
  initializing destination A-r3-hg repository
  scanning source...
  sorting...
  converting...
  3 removeb
  2 changeaa
  1 branch, changeaaa
  0 addc,changeaaaa
  o  3 addc,changeaaaa files: a c
  |
  o  2 branch, changeaaa files: a
  |
  o  1 changeaa files: a
  |
  o  0 removeb files: a
  
  

Convert before branching point

  $ convert 4
  initializing destination A-r4-hg repository
  scanning source...
  sorting...
  converting...
  2 changeaa
  1 branch, changeaaa
  0 addc,changeaaaa
  o  2 addc,changeaaaa files: a c
  |
  o  1 branch, changeaaa files: a
  |
  o  0 changeaa files: a
  
  

Convert at branching point

  $ convert 5
  initializing destination A-r5-hg repository
  scanning source...
  sorting...
  converting...
  1 branch, changeaaa
  0 addc,changeaaaa
  o  1 addc,changeaaaa files: a c
  |
  o  0 branch, changeaaa files: a
  
  

Convert last revision only

  $ convert 6
  initializing destination A-r6-hg repository
  scanning source...
  sorting...
  converting...
  0 addc,changeaaaa
  o  0 addc,changeaaaa files: a c