thoughts on repository/storage/branch/checkout
Aaron Bentley
aaron.bentley at utoronto.ca
Thu Feb 2 00:58:19 GMT 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Denys Duchier wrote:
| STORE
| separating this concept out makes possible shared storage. A store
| currently collects two kinds of objects:
|
| - revisions
| - file weaves
In our usage, a store is an object that associates unique ids with
binary blobs. Your STORE is (in the current implementation) composed of
three stores: a revision metadata store, an inventory store and a
file-contents store.
| CHECKOUT
| this concept represents a concrete set of files and directories in a
| specific line of development. It is composed of two other notions:
|
| - branch
| - workdir
|
| The workdir is where the (versioned) files are located.
We do not consider the workdir to be separable from the checkout.
Operations on checkouts refer to working-tree-relative paths.
| Whenever a concept A depends on another concept B, there is the
possibility
| that:
|
| - B is local
| - B is dislocated
| - B is inherited
We do not consider these to be fundamentals. Rather, we consider that B
has a specified location, where that location may be the same as A's.
We would probably use 'non-local' rather than 'dislocated' (which says
that it's in the wrong place).
| BRANCH
| a branch depends on a store and we must consider the 3 possibilities:
|
| - the store is local (STANDALONE BRANCH)
| - the store is dislocated (LIGHT BOUND BRANCH?)
BOUND is another concept, one that you have not addressed here. Call it
a LIGHT BRANCH. (In my proposal, I was saying that these LIGHT BRANCHES
should also be BOUND, but it's not a logical necessity.)
| - the store is inherited (REPO BRANCH?)
The main differences between a REPO BRANCH and a LIGHT BRANCH are:
1. the REPO BRANCH is in a subdirectory of the REPO directory
2. the REPO BRANCH has no CHECKOUT.
There is no inheritance, per se; the full path to the repository is
specified in its branches.
|
| CHECKOUT
| a checkout depends on a branch and on a workdir.
Operations on the checkout, e.g. add, commit, imply that there is only
one checkout per workdir. It may be theoretically possible to split
them, but I believe that the result would only be confusion.
| Have I completely misunderstood the proposal sofar, or is my recap in the
| galactic neighbourhood of what's been discussed?
You're on the right track, but I don't think you have a clear grasp of
bound branches.
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFD4Vkr0F+nu1YWqI0RAqLSAJ4v2tgBrLvZgZngMQdKICaycKArrACeMy5T
MJgdkV7QiqLEhDAtO3zYaBY=
=3xvN
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list