push performance..

John Arbash Meinel john at arbash-meinel.com
Thu Aug 17 23:47:14 BST 2006


Robert Collins wrote:
> So one reason push is slow is because of this:
> 
> say the remote repo is at revision A
> 
> I branched from revision B, did a local change C, then merge from the
> remote repo committing that as D.
> 
> The revision parents are:
> A: [B]
> B: []
> C: [B]
> D: [C, A]
> 
> Now I do a push, which we hope would only push the unique content for C,
> and D.
> 
> What happens though, is that all the files altered by A are listed in
> the commit of D as a diff against C. So if this commit A altered many
> files, pushing D ends up checking all those files indexes for the
> presence of their revisions even though the revision A is presumed to be
> fully installed in the remote repository.
> 
> I proposed that we filter the fileids which we will check by the
> revisions we know to be be fully installed in the remote repository, and
> if there are no interesting revisions left for a given fileid, we dont
> bother checking it.
> 
> -Rob

I'm not sure how you exactly derived this, and I'm not sure that I
follow why there are markers for every change in A inside D.

Is it just something about file_ids_affected_by?

Are you sure it isn't that we are calling file_ids_affected_by, and
including revision id 'A', even though it is the remote target?

Either way, filtering out the entries that haven't truly been modified
since A seems fine.

Or maybe you are saying that we need to push a new entry for all of
these entries, but we don't need to read the old index first.

John
=:->


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060817/d3ef4b9f/attachment.pgp 


More information about the bazaar mailing list