Branches in general

Daniel Holth dholth at fastmail.fm
Sun Jun 10 20:41:47 CDT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Eric M. Hopper wrote:
>
> I have a refinement of my idea...
>
> Keep the branch tag in a revision.  It doesn't say which branch a
> revision is on, just which revision it was developed for.  And
> that's a pretty important piece of information.
>
> But, have a list of heads that's not version controlled and possibly
> has some means of being propagated from repo to repo by push, pull
> and clone.  That list will give you a list of what the repo owner
> thinks are active branches, and which revisions are the ones the
> repo owner thinks are the heads of these branches.
... etc.

I agree with this idea. I think it is prettier but more difficult to
implement than having completely separate stores or separate, linked
stores (linked stores: if revision does not exist in store a, look for
it in store b) but it is probably more tricky to implement correctly.

When you are in this kind of branch (can anyone think of better names
for the different kinds of branches), each branch is a list of heads
and commands would only show you those heads and ancestors of those
heads. The heads are updated when you commit, pull, push, inside a
particular branch, and you may pull from one branch to another inside
the same repository in which case the store is not updated at all, but
the list of heads for the recipient branch is updated.

The only thing that I would like to add is -- please DO revision
control these. I am always typing "hg update", or "svn update" or what
have you, only to realize that the working copy no longer works. It
would be a very nice feature to keep a local history of when the
repository is updated to a particular revision and when it receives
new changegroups.

- - Daniel Holth
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGbKhaVh4W2pVfoMsRAih6AKCIP0cGr9CwvktDUaBcHUMJ3OtQuwCfTKtB
Cf0AyrdeuLI/Q52nx9AMf04=
=pUKc
-----END PGP SIGNATURE-----



More information about the Mercurial-devel mailing list