~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/incremental-push-pull.txt

  • Committer: Ian Clatworthy
  • Date: 2007-08-13 14:33:10 UTC
  • mto: (2733.1.1 ianc-integration)
  • mto: This revision was merged to the branch mainline in revision 2734.
  • Revision ID: ian.clatworthy@internode.on.net-20070813143310-twhj4la0qnupvze8
Added Quick Start Summary

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
~~~~~~~~~~~~~~~~~~~~~~~
39
39
 
40
40
We have a single top level data object: revisions. Everything else is
41
 
subordinate to revisions, so determining the revisions to propagate should be
 
41
subordinate to revisions, so determining the revisions to propogate should be
42
42
all thats needed. This depends on revisions with partial data - such as those
43
43
with no signature - being flagged in some efficient manner.
44
44
 
94
94
      found to be a subset of the other, or a complete list of revisions to be
95
95
      transmitted is created.
96
96
 
97
 
 * Uncommon cases:
98
 
 
 
97
 * Uncommon cases: 
 
98
   
99
99
   1. Repositories with many projects or branches which are very old may
100
100
      require reading a lot of unrelated graph data.
101
101
 
109
109
 2. Determine one sided graph difference. To avoid obtaining a full graph over
110
110
    the wire this needs to be done without reference to the full graph, and
111
111
    with some logarthmic scaling algorithm. There are several already available
112
 
    for this.
 
112
    for this. 
113
113
 
114
114
With ghost and new-signature detection:
115
115
 
219
219
Data grouping:
220
220
 
221
221
* File per full identifier (fileid:revisionid:meta|content): 104000
222
 
* Delta-chain per object: object id count * constant overhead per object id
 
222
* Delta-chain per object: object id count * constant overhead per object id 
223
223
  (26 -> 80006)
224
224
* Collation/pack file: 1
225
225
 
251
251
 
252
252
 #. setup
253
253
 
254
 
   look at graph of revisions for ~N comits to deretmine eligibility for
 
254
   look at graph of revisions for ~N comits to deretmine eligibility for 
255
255
   if preserve mainline is on, check LH only
256
256
 
257
257
    identify objects to send that are not on the client repo