[RFC][PATCH 0/4] Speed improvement in fetch/clone
Goffredo Baroncelli
kreijack at alice.it
Sat Dec 10 18:15:02 GMT 2005
Hi all,
the aim of the following four patches is to improve the performance to the
fetch/clone code. In order to obtain that, I introduced a new function in the Branch
class: the file_involved( ) function [Patch #1].
This function returns a set of the file_id which are involved in changes.
On the basis that:
a)every line of the inventory refers to an one entry
b)every line is a chunk of data of the weave format
the function file_involved( ) parses the raw data of inventory.weave in order to
detect which file_id(s) are involved in the changes of a range of revisions.
This information is used by the clone/fetch function in order to download the weave(s)
without
a) expanding all the inventory entries or..
b) .. lists the file presents under .bzr/weave/... which is impossible in
some transport ( as http ).
If you want to know the gain see my previous email (
http://lists.ubuntu.com/archives/bazaar-ng/2005q4/005587.html )
The patches are four:
1) the file_involved( ) function
The next three depend on the first
2) a test case of the file_involved function ( as suggest by
Robert Collins )
3) the patch of the fetch code
4) the patch of the clone code
$ ./bzr diff -r branch:../bzr.dev/ | diffstat
branch.py | 49 +++++++++++
clone.py | 63 +++-----------
fetch.py | 186 +++++++++++++++++---------------------------
tests/__init__.py | 2
tests/test_fetch.py | 2
tests/test_file_involved.py | 179 ++++++++++++++++++++++++++++++++++++++++++
Please give me some feedback
Goffredo
--
gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijack AT inwind.it>
Key fingerprint = CE3C 7E01 6782 30A3 5B87 87C0 BB86 505C 6B2A CFF9
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20051210/e8f7041c/attachment.pgp
More information about the bazaar
mailing list