/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/developers/colocated-branches.txt

  • Committer: Richard Wilbur
  • Date: 2016-02-04 19:07:28 UTC
  • mto: This revision was merged to the branch mainline in revision 6618.
  • Revision ID: richard.wilbur@gmail.com-20160204190728-p0zvfii6zase0fw7
Update COPYING.txt from the original http://www.gnu.org/licenses/gpl-2.0.txt  (Only differences were in whitespace.)  Thanks to Petr Stodulka for pointing out the discrepancy.

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
UI Changes
42
42
~~~~~~~~~~
43
43
 
44
 
Bazaar URLs need to have some way to address colocated branches in
45
 
directories that contain multiple branches.
 
44
Bazaar URLs need to have some way to address colocated branches in 
 
45
directories that contain multiple branches. 
46
46
 
47
 
Per RFC3986 we have picked the comma (",") to allow the specification of
48
 
colocated branch names. Comma's in path names would have to be
49
 
urlencoded at first to avoid ambiguity, though perhaps it would be
 
47
Per RFC3986 we have picked the comma (",") to allow the specification of 
 
48
colocated branch names. Comma's in path names would have to be 
 
49
urlencoded at first to avoid ambiguity, though perhaps it would be 
50
50
possible to support heuristics later when interpreting user-specified URLs.
51
51
 
52
52
An example URL would be:
53
53
 
54
54
 bzr://bazaar.launchpad.net/~jelmer/bzr/bzr.dev,colo-urls
55
55
 
56
 
The segment after the comma will initially be interpreted as a colocated
57
 
branch name but we would like to keep the option to allow
58
 
key=value style specifications in the future and DWIM for segments that
 
56
The segment after the comma will initially be interpreted as a colocated 
 
57
branch name but we would like to keep the option to allow 
 
58
key=value style specifications in the future and DWIM for segments that 
59
59
do not contain an =. Following the RFC the comma would be interpreted within
60
60
the scope of a path segment. In other words, in the URL:
61
61
 
64
64
unstable is interpreted as the colocated branch living in the python-debian.git
65
65
control directory; README is a path inside of the branch.
66
66
 
67
 
Control directories will also have the notion of an "active" branch. This is
68
 
the branch that is being used by a working tree, if present and the branch
69
 
that will be used if no explicit colocated branch is specified. The
70
 
active branch support makes it easier to deal with existing bzrdirs and
71
 
is useful when accessing foreign control directories that have the concept
 
67
Control directories will also have the notion of an "active" branch. This is 
 
68
the branch that is being used by a working tree, if present and the branch 
 
69
that will be used if no explicit colocated branch is specified. The 
 
70
active branch support makes it easier to deal with existing bzrdirs and 
 
71
is useful when accessing foreign control directories that have the concept 
72
72
as well.
73
73
 
74
 
A new command 'bzr rmbranch' needs to be added to make it possible to
75
 
remove colocated branches, as this won't be possible by simple
 
74
A new command 'bzr rmbranch' needs to be added to make it possible to 
 
75
remove colocated branches, as this won't be possible by simple 
76
76
directory removal, at least not of a user-visible directory.
77
77
 
78
78
Code Changes
79
79
~~~~~~~~~~~~
80
80
 
81
 
BzrDirFormat will need a supports_colocated_branches property that
82
 
indicates whether a format supports the creation, removal and accessing of
 
81
BzrDirFormat will need a supports_colocated_branches property that 
 
82
indicates whether a format supports the creation, removal and accessing of 
83
83
colocated branches.
84
84
 
85
 
Several methods on BzrDir will need to be updated to take an option branch_name
86
 
parameter. If this parameter is not specified or None, the active branch
 
85
Several methods on BzrDir will need to be updated to take an option branch_name 
 
86
parameter. If this parameter is not specified or None, the active branch 
87
87
will be used.
88
88
 
89
89
The methods that will have to be extended are:
96
96
 * BranchFormat.initialise()
97
97
 * BranchFormat.open()
98
98
 
99
 
A new BzrDir.list_branches() method will return all colocated branches
100
 
present in a control directory.
 
99
A new BzrDir.list_branches() method will return all colocated branches 
 
100
present in a control directory. 
101
101
 
102
 
Any URL interpreting methods (e.g. Branch.open) will need to be updated
103
 
to extract a colocated branch name and need to pass that into the
 
102
Any URL interpreting methods (e.g. Branch.open) will need to be updated 
 
103
to extract a colocated branch name and need to pass that into the 
104
104
relevant methods.
105
105
 
106
 
Existing callers of BzrDir.{create,open,destroy}_branch() need to
107
 
be updated to pass in branch names and optionally be changed to use
 
106
Existing callers of BzrDir.{create,open,destroy}_branch() need to 
 
107
be updated to pass in branch names and optionally be changed to use 
108
108
BzrDir.list_branches().
109
109
 
110
110
Schema Changes
117
117
Eventually, Bazaar could easily support colocated branches by just
118
118
creating a new branch transport for each colocated branch and have a
119
119
"regular" branch live there. This would require something like
120
 
BzrDirMeta2 though. An example of this is implemented in the
 
120
BzrDirMeta2 though. An example of this is implemented in the 
121
121
lp:bzr-colocated plugin
122
122
 
123
123
Further integration