Mercurial > hgsubversion
view tests/fixtures/rename_tag_test.svndump @ 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 | 76e9504db03b |
children |
line wrap: on
line source
SVN-fs-dump-format-version: 2 UUID: b94d0721-81cf-435e-ab14-c40b19ce1924 Revision-number: 0 Prop-content-length: 56 Content-length: 56 K 8 svn:date V 27 2010-01-17T19:05:32.787484Z PROPS-END Revision-number: 1 Prop-content-length: 113 Content-length: 113 K 7 svn:log V 11 Empty dirs. K 10 svn:author V 7 pmezard K 8 svn:date V 27 2010-01-17T19:05:33.116308Z PROPS-END Node-path: branches Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: tags Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: trunk Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Revision-number: 2 Prop-content-length: 110 Content-length: 110 K 7 svn:log V 9 Add alpha K 10 svn:author V 7 pmezard K 8 svn:date V 27 2010-01-17T19:05:34.099166Z PROPS-END Node-path: trunk/alpha Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 12 Text-content-md5: 3c72ebf8bbd7fa88b1fdcee5398b5a17 Text-content-sha1: f552a50b53177d35b29a4a0ab1cece918b5b5e9b Content-length: 22 PROPS-END file: alpha Revision-number: 3 Prop-content-length: 109 Content-length: 109 K 7 svn:log V 8 Add beta K 10 svn:author V 7 pmezard K 8 svn:date V 27 2010-01-17T19:05:36.110949Z PROPS-END Node-path: trunk/beta Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 13 Text-content-md5: 981d1eb5fd0bbe05354c292105944863 Text-content-sha1: 5d40e0a9ceda69f3d98d4851a6bee02c10a6e277 Content-length: 23 PROPS-END Data of beta Revision-number: 4 Prop-content-length: 112 Content-length: 112 K 7 svn:log V 10 tagging r3 K 10 svn:author V 7 pmezard K 8 svn:date V 27 2010-01-17T19:05:38.066217Z PROPS-END Node-path: tags/tag_r3 Node-kind: dir Node-action: add Node-copyfrom-rev: 3 Node-copyfrom-path: trunk Revision-number: 5 Prop-content-length: 116 Content-length: 116 K 7 svn:log V 14 tag from a tag K 10 svn:author V 7 pmezard K 8 svn:date V 27 2010-01-17T19:05:38.116376Z PROPS-END Node-path: tags/copied_tag Node-kind: dir Node-action: add Node-copyfrom-rev: 4 Node-copyfrom-path: tags/tag_r3 Revision-number: 6 Prop-content-length: 114 Content-length: 114 K 7 svn:log V 12 rename a tag K 10 svn:author V 7 pmezard K 8 svn:date V 27 2010-01-17T19:05:38.179177Z PROPS-END Node-path: tags/other_tag_r3 Node-kind: dir Node-action: add Node-copyfrom-rev: 5 Node-copyfrom-path: tags/copied_tag Node-path: tags/copied_tag Node-action: delete