~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/overview.txt

  • Committer: Martin Pool
  • Date: 2008-09-04 05:35:16 UTC
  • mto: This revision was merged to the branch mainline in revision 3691.
  • Revision ID: mbp@sourcefrog.net-20080904053516-fs3wq4s1ezgne4jg
Developer documentation of repository stacking

Show diffs side-by-side

added added

removed removed

Lines of Context:
95
95
Repositories store committed history: file texts, revisions, inventories,
96
96
and graph relationships between them.
97
97
 
 
98
Stacked Repositories
 
99
====================
 
100
 
 
101
Repositories can be configured to refer to a list of "fallback"
 
102
repositories.  If a particular revision is not present in the original
 
103
repository, it refers the query to the fallbacks.
 
104
 
 
105
Compression deltas don't span physical repository boundaries.  So the
 
106
first commit to a new empty repository with fallback repositories will
 
107
store a full text of the inventory, and of every new file text.
 
108
 
 
109
At runtime, repository stacking is actually configured by the branch, not
 
110
the repository.  So doing ``a_bzrdir.open_repository()`` 
 
111
gets you just the single physical repository, while 
 
112
``a_bzrdir.open_branch().repository`` gets one configured with a stacking. 
 
113
Therefore to permanently change the fallback repository stored on disk,
 
114
you must use ``Branch.set_stacked_on_url``.  
 
115
 
 
116
Changing away from an existing stacked on url will copy across any
 
117
necessary history so that the repository remains usable.
 
118
 
 
119
A repository opened from an hpss server is never stacked on the server
 
120
side, because this could cause complexity or security problems with the
 
121
server acting as a proxy for the client.  Instead, the branch on the
 
122
server exposes the stacked-on URL and the client can open that.
98
123
 
99
124
 
100
125
..