Merge lp:~abentley/bzr/nested-specs into lp:~bzr/bzr/trunk-old

Proposed by Aaron Bentley
Status: Rejected
Rejected by: Aaron Bentley
Proposed branch: lp:~abentley/bzr/nested-specs
Merge into: lp:~bzr/bzr/trunk-old
Diff against target: 92 lines
To merge this branch: bzr merge lp:~abentley/bzr/nested-specs
Reviewer Review Type Date Requested Status
Martin Pool Approve
Review via email: mp+6817@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Aaron Bentley (abentley) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Here's a document representing the current thinking on nested trees, as
I understand it.

Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkodFa0ACgkQ0F+nu1YWqI3oRQCfafCgzgQynMc8WrJWbi5flMxY
OVoAn3qXNPiKNkr9yxH6513naSiM+yin
=IMyQ
-----END PGP SIGNATURE-----

Revision history for this message
Martin Pool (mbp) wrote :

That's good information. But maybe this would be better in devnotes than in trunk while we're still working through it.

review: Approve
lp:~abentley/bzr/nested-specs updated
4382. By Aaron Bentley

Updated doc

4383. By Aaron Bentley

Add other questions.

Unmerged revisions

4383. By Aaron Bentley

Add other questions.

4382. By Aaron Bentley

Updated doc

4381. By Aaron Bentley

First pass at a nested trees doc.

4380. By Canonical.com Patch Queue Manager <email address hidden>

(igc) two simple log dotted revno tests (Marius Kruger)

4379. By Canonical.com Patch Queue Manager <email address hidden>

(tanner) merge 1.15final back to trunk

4378. By Canonical.com Patch Queue Manager <email address hidden>

(igc) faster branch in a shared repo for dev6rr format (Ian
 Clatworthy)

4377. By Canonical.com Patch Queue Manager <email address hidden>

(igc) make branch --no-tree faster (Ian Clatworthy)

4376. By Canonical.com Patch Queue Manager <email address hidden>

(Jelmer) Return BranchPushResult from InterBranch.lossy_push().

4375. By Canonical.com Patch Queue Manager <email address hidden>

(Jelmer) Add child_submit_format option used by 'bzr send'.

4374. By Canonical.com Patch Queue Manager <email address hidden>

(abentley) Enable committing from a PreviewTree.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'doc/developers/nested-trees.txt'
--- doc/developers/nested-trees.txt 1970-01-01 00:00:00 +0000
+++ doc/developers/nested-trees.txt 2009-05-28 00:35:25 +0000
@@ -0,0 +1,88 @@
1Nested Trees
2############
3
4Principles
5----------
6- If you branch from a composite tree, you'll have all the data to construct
7 any previous version
8- Never store a location in versioned data.
9- Implementation of nested trees shall not make operations observably slower
10 for those not using nested trees.
11
12
13Undecided questions
14-------------------
15
16Shall commands recurse downwards by default?
17~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18Pros:
19 - It is hard to accidentally produce inconsistent trees
20 - Inconsistent trees are hard for remote users to handle
21
22Cons:
23 - It is hard to accidentally commit too many things at once
24 - Accidentally committing too many things at once is easy to resolve
25 - Accidentally committing nuclear launch codes is easier to do
26 - More risk of exposing users to bugs
27 - Makes incompleteness more glaring
28 - Annoys users.
29
30Shall commands recurse upwards by default?
31~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32
33Shall subtree branches be addressable?
34~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35
36Shall we model nested trees as a composite tree?
37~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38
39Shall we use root-ids for tree references?
40~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41
42Shall we recurse our low-level operations from the beginning?
43~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44Pros:
45 - We may not need extra indices
46Cons:
47 - It may take longer to implement and needlessly distort the code
48
49Shall we lock recursively?
50~~~~~~~~~~~~~~~~~~~~~~~~~~
51Pros:
52 - Matches existing behaviour by failing earlier
53Cons:
54 - Slower
55 - Fails needlessly
56
57How do we handle merge when the subtree hasn't made any changes?
58~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59
60What should uncommit do?
61~~~~~~~~~~~~~~~~~~~~~~~~
62
63Shall we use a CompositeTree object as a shim to make existing commands work?
64~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65
66Some subtrees should have commits and some should not. How?
67~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68
69Decided questions
70-----------------
71
72The branches of subtrees shall share a repository with the containing tree.
73
74The branches of subtrees shall be in a special format that shares a single
75last_revision file that is stored in the containing branch.
76
77The subtree branches shall be referenced in the last_revision file by file-id.
78
79Subtree branches shall not support individual configuration.
80
81Fetch shall automatically fetch the revisions mentioned by tree-references,
82recursively.
83
84The reserved revision-id "head:" shall be used in tree-references to refer to
85the tip revision of a branch.
86
87bzr-svn repositories with externals shall behave as though the multiple
88repositories were a single Bazaar repository with multiple branches.