Mercurial > hgsubversion
annotate tests/fixtures/simple_branch.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 | bb00f7ca5b8c |
children |
rev | line source |
---|---|
542
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
1 #!/bin/sh |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
2 # |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
3 # Generate simple_branch.svndump |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
4 # |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
5 |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
6 mkdir temp |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
7 cd temp |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
8 |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
9 mkdir project-orig |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
10 cd project-orig |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
11 mkdir trunk branches tags |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
12 cd .. |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
13 |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
14 svnadmin create testrepo |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
15 svnurl=file://`pwd`/testrepo |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
16 svn import --username durin project-orig $svnurl -m "Empty dirs." |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
17 |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
18 svn co $svnurl project |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
19 cd project |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
20 echo 'file: alpha' > trunk/alpha |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
21 svn add trunk/alpha |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
22 svn ci --username durin -m 'Add alpha' |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
23 echo 'Data of beta' > trunk/beta |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
24 svn add trunk/beta |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
25 svn ci --username durin -m 'Add beta' |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
26 svn up |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
27 svn cp trunk branches/the_branch |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
28 svn ci --username durin -m 'Make a branch' |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
29 cd .. |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
30 |
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
31 svnadmin dump testrepo > ../simple_branch.svndump |