~bzr/ubuntu/lucid/bzr/beta-ppa

« back to all changes in this revision

Viewing changes to doc/developers/bundles.txt

  • Committer: Martin Pool
  • Date: 2010-07-02 07:29:40 UTC
  • mfrom: (129.1.7 packaging-karmic)
  • Revision ID: mbp@sourcefrog.net-20100702072940-hpzq5elg8wjve8rh
* PPA rebuild.
* PPA rebuild for Karmic.
* PPA rebuild for Jaunty.
* PPA rebuild for Hardy.
* From postinst, actually remove the example bash completion scripts.
  (LP: #249452)
* New upstream release.
* New upstream release.
* New upstream release.
* Revert change to Build-depends: Dapper does not have python-central.
  Should be python-support..
* Target ppa..
* Target ppa..
* Target ppa..
* Target ppa..
* New upstream release.
* Switch to dpkg-source 3.0 (quilt) format.
* Bump standards version to 3.8.4.
* Remove embedded copy of python-configobj. Closes: #555336
* Remove embedded copy of python-elementtree. Closes: #555343
* Change section from 'Devel' to 'Vcs'..
* Change section from 'Devel' to 'Vcs'..
* Change section from 'Devel' to 'Vcs'..
* Change section from 'Devel' to 'Vcs'..
* Change section from 'Devel' to 'Vcs'..
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* debian/control: Fix obsolete-relation-form-in-source
  lintian warning. 
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Split out docs into bzr-doc package.
* New upstream release.
* Added John Francesco Ferlito to Uploaders.
* Fix install path to quick-reference guide
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Fix FTBFS due to path changes, again.
* Fix FTBFS due to doc paths changing
* New upstream release.
* Fix FTBFS due to path changes, again.
* Fix FTBFS due to doc paths changing
* New upstream release.
* Fix FTBFS due to path changes, again.
* Fix FTBFS due to doc paths changing
* New upstream release.
* Fix FTBFS due to path changes, again, again.
* Fix FTBFS due to path changes, again.
* Fix FTBFS due to path changes.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Bump standards version to 3.8.3.
* Remove unused patch system.
* New upstream release.
* New upstream release.
* New upstream release.
* Fix copy and paste tab error in .install file
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
 + Fixes compatibility with Python 2.4. Closes: #537708
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream version.
* Bump standards version to 3.8.2.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Add python-pyrex to build-deps to ensure C extensions are always build.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Split documentation into bzr-doc package. ((LP: #385074)
* Multiple packaging changes to make us more linitan clean.
* New upstream release.
* Split documentation into bzr-doc package. ((LP: #385074)
* Multiple packaging changes to make us more linitan clean.
* New upstream release.
* Split documentation into bzr-doc package. ((LP: #385074)
* Multiple packaging changes to make us more linitan clean.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Fix API compatibility version. (Closes: #526233)
* New upstream release.
  + Fixes default format for upgrade command. (Closes: #464688)
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Add missing dependency on zlib development library. (Closes:
  #523595)
* Add zlib build-depends.
* Add zlib build-depends.
* Add zlib build-depends.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Move to section vcs.
* Bump standards version to 3.8.1.
* New upstream release.
* Remove temporary patch for missing .c files from distribution
* New upstream release.
* Remove temporary patch for missing .c files from distribution
* New upstream release.
* Remove temporary patch for missing .c files from distribution
* Add temporary patch for missing .c files from distribution
* Add temporary patch for missing .c files from distribution
* Add temporary patch for missing .c files from distribution
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Recommend ca-certificates. (Closes: #452024)
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Update watch file. bazaar now uses launchpad to host its sources.
* Remove patch for inventory root revision copy, applied upstream.
* New upstream release.
* New upstream release.
* New upstream release
* Force removal of files installed in error to /etc/bash_completion.d/
  (LP: #249452)
* New upstream release.
* New upstream release
* New upstream release.
* Bump standards version.
* Include patch for inventory root revision copy, required for bzr-svn.
* New upstream release.
* Remove unused lintian overrides.
* Correct the package version not to be native.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Final 1.5 release.
* New upstream release.
* New upstream release.
* New upstream release.
* Add myself as a co-maintainer.
* Add a Dm-Upload-Allowed: yes header.
* New upstream bugfix release.
* New upstream release.
* Final 1.3 release.
* New upstream release.
* First release candidate of the upcoming 1.3 release.
* Rebuild to fix the problem caused by a build with a broken python-central.
* New upstream release.
* Rebuild for dapper PPA.
* Apply Lamont's patches to fix build-dependencies on dapper.
  (See: https://bugs.launchpad.net/bzr/+bug/189915)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
=======
 
2
Bundles
 
3
=======
 
4
 
 
5
Status
 
6
======
 
7
 
 
8
:Date: 2007-06-19
 
9
 
 
10
This document describes the current and future design of the bzr bundle facility.
 
11
 
 
12
.. contents::
 
13
 
 
14
Motivation
 
15
==========
 
16
 
 
17
Bundles are intended to be a compact binary representation of the changes done within
 
18
a branch for transmission between users. Bundles should be able to be used
 
19
easily and seamlessly - we want to avoid having a parallel set of commands to
 
20
get data from within a bundle.
 
21
 
 
22
A related concept is **merge directives** which are used to transmit bzr merge
 
23
and merge-like operations from one user to another in such a way that the
 
24
recipient can be sure they get the correct data the initiator desired.
 
25
 
 
26
Desired features
 
27
================
 
28
 
 
29
* A bundle should be able to substitute for the entire branch in any bzr
 
30
  command that operates on branches in a read only fashion.
 
31
* Bundles should be as small as possible without losing data to keep them
 
32
  feasible for including in emails.
 
33
 
 
34
Historical Design
 
35
=================
 
36
 
 
37
Not formally documented, the current released implementation can be found
 
38
in bzrlib.bundle.serializer. One key element is that this design included
 
39
parts of the branch data as human readable diffs; which were then subject
 
40
to corruption by transports such as email.
 
41
 
 
42
June 2007 Design
 
43
================
 
44
`Bundle Format 4 spec`_
 
45
 
 
46
.. _Bundle Format 4 spec: bundle-format4.html
 
47
 
 
48
 
 
49
Future Plans
 
50
============
 
51
 
 
52
Bundles will be implemented as a 'Shallow Branch' with the branch and
 
53
repository data combined into a single file. This removes the need to
 
54
special case bundle handling for all command which read from branches.
 
55
 
 
56
Physical encoding
 
57
-----------------
 
58
 
 
59
Bundles will be encoded using the bzr pack format. Within the pack the
 
60
branch metadata will be serialised as a BzrMetaDir1 branch entry. The
 
61
Repository data added by the revisions contained in the bundle will be
 
62
encoded using multi parent diffs as they are the most pithy diffs we are
 
63
able to create today in the presence of merges. XXX More details needed?
 
64
 
 
65
Code reuse
 
66
----------
 
67
 
 
68
Ideally we can reuse our BzrMetaDir based branch formats directly within a
 
69
Bundle by layering a Transport interface on top of the pack - or just
 
70
copying the data out into a readonly memory transport when we read the
 
71
pack. This suggests we will have a pack specific Control instance,
 
72
replacing the usual 'BzrDir' instance, but use the Branch class as-is.
 
73
 
 
74
For the Repository access, we will create a composite Repository using the
 
75
planned Repository Stacking API, and a minimal Repository implementation
 
76
that can work with the multi parent diffs within the bundle.
 
77
 
 
78
We will need access to a branch that has the basis revision of the bundle
 
79
to be able to construct revisions from within it - this is a requirement
 
80
for Shallow Branches too, so hopefully we can define a single mechanism at
 
81
the Branch level to gain access to that.
 
82
 
 
83
 
 
84
..
 
85
   vim: ft=rst tw=74 ai