What we did at UBZ

John A Meinel john at arbash-meinel.com
Tue Nov 15 00:26:42 GMT 2005


Michael Ellerman wrote:
> On Tue, 15 Nov 2005 10:02, John A Meinel wrote:
>>> Centralized storage
>>> ===================
>>> http://bazaar.canonical.com/BzrArchives
>>>
>>> We will introduce 'archives'.  Much like the archives in Arch, they will
>>> be structures that contain both branches and revisions.  They will not
>>> have working trees.  You will be able to name your branches pretty much
>>> anything, within the archive. (Except, maybe ./+storage)  Branch naming
>>> will be explicit, not implicit as in the centralized storage design I
>>> proposed.
>> I was thinking about this. What if we used
>> $archive/
>>   +archive/
>>     archive-format
>>     storage/
>>       weaves/
> 
> Or how about ",+${archive-foo-directory}##_^"
> 
> Just exercising my tla crack detector ;)
> 

There are some conflicting goals, which is how we came up with +storage,
and why I'm choosing +archive.

We don't really want to set any sort of policy with respect to branch
names. We want people to setup whatever sort of naming convention that
they want. So we didn't want to force people to add a directory where
all the branches lived.

We want paths to pun with branch names. It's nice to be able to say "you
can find my branch at http://somewhere/path/" and be able to open a
web-browser to that same path and find the branch information. This
prevents us from adding a directory, and then hiding it in the namespace.

For example, one solution is to do:

$archive/
  storage/
  branches/
    bzr/
      mainline/

That would give us all of the top-level namespace we want (storage,
branches, etc), but it means that everyone would have to put the extra
branches section into their path. (http://archive/branches/bzr/mainline)

So we are back to having

$archive/
  bzr/
    mainline/

So now we want to give people as much flexibility with how they name
things as we can. But we still need to put a directory in there to put
the archive control stuff. And we would like it to be an unlikely name
so that we give people as much freedom as possible.

$archive/
  storage/
  bzr/
    mainline/

Means that nobody can name a project "storage".
We could name it:

$archive/
  .storage/

Except filenames starting with a dot are typically hidden by apache, and
that is really hard to turn off. (I still haven't figured out how to
show the .bzr directories).
So we wanted to avoid dot dirs, and we are trying to make it unlikely
that someone would want to use the name for something else.

$archive/
  =storage/

Is worse than

$archive/
  +storage/

Because of how the shell expands '='. Yes, it is a little bit of crack,
but it is the least we could come up with.

As I mentioned, I'm also concerned with the names inside of the branch
directories, since we would also like them to not conflict as well.

The problem is a mixed namespace, where control files are mixed with the
user namespace, which to some degree we want, because it gives us nice
punning between the branch name, and its url.

If you have another suggestion which is less crackful, please, let us
know. Especially since archives aren't implemented yet. This is just the
discussion that we had about it.

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/20051114/a70b519f/attachment.pgp 


More information about the bazaar mailing list