Mercurial > hgsubversion
view tests/fixtures/mergeexternals.sh @ 990:def2144c0a8c
push: rebase one at a time before push
Previously when pushing n commits, push would rebase n,
commit 1, rebase n-1, commit 1, rebase n-2, etc. This
caused push to be very slow on large repositories. Pushing
10 commits on our repo took 75 seconds per commit, and that
grew at n^2 with the number of commits being pushed.
This changes push to rebase each commit individually. Now
pushing 10 commits on our repo takes 25 seconds per commit,
and is constant relative to the number of commits being
pushed.
author | Durham Goode <durham@fb.com> |
---|---|
date | Wed, 02 Jan 2013 17:51:07 -0800 |
parents | ba65c0b01d4f |
children |
line wrap: on
line source
#!/bin/sh # # Generate mergeexternals.svndump # mkdir temp cd temp mkdir project-orig cd project-orig mkdir trunk mkdir branches cd .. svnadmin create testrepo svnurl=file://`pwd`/testrepo svn import project-orig $svnurl -m "init project" svn co $svnurl project cd project/trunk mkdir d1 echo a > d1/a mkdir d2 echo b > d2/b mkdir -p common/ext echo c > common/ext/c svn add d1 d2 common svn ci -m addfiles svn up svn propset svn:externals '^/trunk/common/ext ext' d1 svn propset svn:externals '^/trunk/common/ext ext' d2 svn ci -m addexternals cd .. svn up svn cp trunk branches/branch cd branches svn ci -m addbranch cd branch mkdir d3 echo d > d3/d svn add d3 svn propset svn:externals '^/trunk/common/ext ext3' d3 svn ci -m touchbranch cd ../../trunk svn merge '^/branches/branch' svn up svn ci -m 'merge' cd ../.. svnadmin dump testrepo > ../mergeexternals.svndump