view tests/fixtures/branchtagcollision.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 f28e0f54a6ef
children
line wrap: on
line source

#!/bin/bash
#
# Generate branchtagcollision.svndump
#
# Generates an svn repository with a branch and a tag that have the same name.


mkdir temp
cd temp

svnadmin create testrepo
svn checkout file://`pwd`/testrepo client

cd client
mkdir trunk
mkdir branches
mkdir tags

svn add trunk branches tags
svn commit -m "Initial commit"

echo "fileA" >> trunk/fileA
svn add trunk/fileA
svn commit -m "Added fileA"

svn cp trunk branches/A
svn commit -m "added branch"

echo "fileB" >> trunk/fileB
svn add trunk/fileB
svn commit -m "Added fileB"

svn cp trunk tags/A
svn commit -m "added bad tag"

cd ..
svnadmin dump testrepo > ../branchtagcollision.svndump