[RFC] __BIG__ speed improvment in clone/branch on http transport
Robert Collins
robertc at robertcollins.net
Sun Dec 4 22:28:03 GMT 2005
On Thu, 2005-12-01 at 22:48 +0100, Goffredo Baroncelli wrote:
> Hi all,
>
> the patch below introduces a new function to the branch class. The function
> is named file_involved(rev1,rev2 ) and returns the file_id
> involved in changes between the revision1 and the revisions2. Moreover
> this function can be called with a set of revisions as argument: in this case
> file_involved() returns the file_id(s) involved in the revisions set.
>
> This function is __very__ useful during the clone/branch function because
> with this is very easy know which weave we need to update/download.
I haven't done a code review per se at this point, but let me say -
cool! This is something talked about before but I'm ecstatic to see that
someone has done it ;).
A few key things though that should be done before this is merged:
* We need test cases that drive that function hard - its going to be
core functionality and an error there -> corrupt repository. In
particular I think we need some tests that use a format 6 branch, so
that as new branch formats come in we know that the top level behaviour
is preserved across formats (open a format 6 branch from a format 7
branch for instance). Another important test is when we have
ghosts/import revisions:
Imagine that we have an inventory weave that starts with
rev A
then
we add in rev C :
rev A content
rev C content
and then we add B which is a merge of A and C
rev A content
with B new lines/gone lines
rev C content
the gap from A to B will not show any of C, but we need to get all of C
that was not in A or B to be complete - we should test that this happens
(and if it doesn't then rethink the idea).
* It would be nice to use that in fetch_greedy too, just to make the
code simpler. It would (obviously) not make things faster as most weaves
will need merging rather than bulk copying.
Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20051205/58ccc22b/attachment.pgp
More information about the bazaar
mailing list