[merge] robert, aaron, daniel

John A Meinel john at arbash-meinel.com
Thu Nov 17 22:02:35 GMT 2005


Robert Collins wrote:
> On Thu, 2005-11-17 at 15:37 -0600, John A Meinel wrote:
>> ... 
>>> But if they become separate objects, it's best to make sure they don't
>>> use controlfiles with the same names.  So, I'd suggest a standalone
>>> branch would look like this:
>>>
>>> .bzr/
>>>      README
>>>      branch/
>>>             branch-format
>>>             revision-history
>>>             branch.conf
>>>             (etc)
>>>      checkout/
>>>               branch-location
>>>               checkout-format
>>>               inventory
>>>               pending-merges
>>>               (etc)
>>>      repository/
>>>                 repository-format
>>>                 inventory.weave
>>>                 revision-storage
>>>                 (etc)
>>>
>>> Treeless branches would then be implemented by just leaving out the
>>> checkout dir.
>> Other than potentially changing .bzr into _bzr I think this is a nice
>> layout. We certainly discussed many time what files go with what
>> fundamental concept, and this would make it explicit.
>>
>> I like it.
> 
> So do I, except I want to nuke the .bzr level when there is no tree
> present.
> 
> So with a tree is:
> ROOT/
>   .bzr/
>     README
>     branch/ ...
>     checkout/ ...
>     repository/ ...
> 
> without a tree is:
> ROOT/
>   README
>   branch/ ...
>   repository/ ...
> 
> Rob
> 

The reason to leave it in is to prevent conflicts between the future
repository namespace, and files within the branch information.

The alternative is that everything needs a prefixed underscore, so you
end up with:

ROOT/
  .bzr/
    README
    branch/
    checkout/
    ...

versus
ROOT/
  _README
  _branch/
  _repository/
  ...

I don't really prefer the latter form.

I've also been thinking of other issues.

One is that it would be nice to "browse" a repository, even we are
accessing it over http. Which means that we would need to track each
branch individually.
If we give up punning the physical path to a branch with its identifier,
then things get a lot easier. So we can have a physical storage of:

$REPOSITORY/
  repository/
  branches/
    <branch-id1>/
      README
      branch/
    <branch-id2>/
      README
      branch/
  branchinfo

Where branchinfo has a list mapping the namespace to the physical path.

Is it worth giving up the namespace => physical path punning?

Or we can change all of the "revision-history" files and weave them
together based on something like branch-id.

I'm not exactly advocating it, but I'm mentioning it as a possibility of
an alternative solution to some of our problem.

John
=:->


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20051117/f7af9d32/attachment.pgp 


More information about the bazaar mailing list