view tests/fixtures/delentries.sh @ 889:7a98fbadcae9

revsets: huge speedups for fromsvn and svnrev I have a hgsubversion repo that contains over 300,000 commits. In that repo, this patch improves performance as follows: hg --time log -r 'first(fromsvn())' Before: 40.3 sec After: 0.8 sec hg --time log -r 'svnrev(350000)' Before: 40.3 sec After: 0.1 sec Note: the performance of these revset implementations is very sensitive to doing as little work as possible per line of the rev_map file. I originally attempted to hide the file format details by hoisting the parsing of each line up into RevMap.readmapfile, but the current less abstract code is dramatically (10x or more) faster. If the revmap file is missing, we error out and print a message describing what to do.
author Bryan O'Sullivan <bryano@fb.com>
date Sat, 12 May 2012 05:38:34 -0700
parents 19aabf67c792
children
line wrap: on
line source

#!/bin/sh
#
# Generate delentries.svndump
#

mkdir temp
cd temp

mkdir project-orig
cd project-orig
mkdir trunk
cd ..

svnadmin create testrepo
svnurl=file://`pwd`/testrepo
svn import project-orig $svnurl -m "init project"

svn co $svnurl project
cd project/trunk
# Regular file deletion
echo a > a
# Another file starting like the deleted file
echo aa > aa
mkdir d1
mkdir d1/d2
mkdir d1/d2/d3
echo c > d1/c
# Test directory deletion
echo d > d1/d2/c
# Test subdirectory deletion
echo e > d1/d2/d3/e
echo f > d1/d2/d3/f
# This file starts as the deleted directory, can be confusing
echo d2prefix > d1/d2prefix
svn add a aa d1
svn ci -m "add entries"
svn rm a d1/d2
svn ci -m "remove entries"
cd ../..

svnadmin dump testrepo > ../delentries.svndump