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