[RFC] Represent Loom threads using branches
Aaron Bentley
aaron at aaronbentley.com
Thu Apr 24 13:25:05 BST 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've been using the loom plugin pretty heavily, and I still feel like
loom threads should be branches.
branches
1. have a last-revision pointer
2. have configuration data
3. have a physical location in URLs and on filesystems
threads
1. have a last-revision pointer
Threads don't have anything that branches don't have. They lack a
location, and they lack configuration data.
Uniqueness of revnos
- --------------------
We have always considered a location + a revno to be unique. Threads
don't have an associated location, so they can't be combined with a
revno to uniquely identify a revision (such as their head).
Ease of interaction
- -------------------
Threads cannot be merged, pulled, logged, etc. Only the branch
representing the entire loom supports this, but results may vary
depending on what the current thread is.
Existing tools and workflows
- -----------------------------
PQM, Launchpad, pqm-submit, and the launchpad code review process are
all designed around the assumption that only branches represent a line
of development. Threads break this assmption.
In my work on Launchpad, I find myself constantly running export-loom so
that I can submit threads for review.
Checkouts
- ---------
I sometimes want to have checkouts of different threads in the same
loom, so that I can e.g. run tests of one thread while working on a
different thread. This is extremely kludgey at the moment.
Configuration needs
- -------------------
It's touted as a virtue that threads are lightweight, but I don't find
their lack of configuration data to be a virtue. I often want different
threads to have different parent or submit branches. For example, my
work on stacking policy has a bzr.dev thread and a shallow-branch
thread. These should be updated from their respective upstreams
periodically.
Proposal:
- ---------
- - A loom branch shall contain a list of thread-branches.
- - Thread-branches shall be in a special format such that configuration
data not present in the branch is retrieved from the loom branch.
- - Thread branches shall be stored in a subdirectory of the loom branch's
.bzr directory.
- - A directory service shall be implemented that allows users to specify
a friendly name for a thread. As a strawman example: "thread:foo" would
refer to thread "foo" in the current branch. "thread:baz:bar" would
specify thread "baz" inside loom "bar".
"thread:qux:http://example.org/quxx" would refer to thread "qux" in loom
branch "http://example.org/quxx"
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFIEHwg0F+nu1YWqI0RAj3DAJ9nWB9CkeUkcgkYF/8uO/OCQF1LTgCeJLRW
ARkbT+bL+bZYIBFYEF7LabM=
=2Xl3
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list