Equivalent to svn tags?
Matthew D. Fuller
fullermd at over-yonder.net
Thu Oct 25 16:03:37 BST 2007
On Thu, Oct 25, 2007 at 10:25:57AM -0400 I heard the voice of
Aaron Bentley, and lo! it spake thus:
>
> I've use Arch, which required this, and I never found it useful. I
> do find it useful to push an entire repo at once. But as a repo
> client, I rarely want more than a couple of branches of a project
> from a repo.
I see that as a social issue; managing what's in a group of branches,
rather than a denial of the usefulness of the branch groups. (Note
that I don't necessarily endorse cramming the concepts of 'branch
group' and 'repo' together; that may turn out to be the _simplest_
thing, but it's not necessarily the best).
> So this is exactly what tags are useful for-- they provide a way to
> reference particular releases, without
But I'm not necessarily interested in particular revisions. I'm
interested in branches. This isn't svn; we KNOW that branches and
tags are two different things, and both have uses. And using trickery
to insert revs into your ancestry that don't belong, just to make a
revision visible, is definitely a hack.
This sort of thing doesn't show up in bzr because we don't _have_ any
long-lived public branches. Aside from .dev, the only public branches
are release branches, which have a half-life of about a week,
generally only get committed to by the RM, and for that matter
generally get pulled down or run by... nobody.
Now consider FreeBSD. The RELENG_4 branch was the branch all the 4.x
releases were based on (technically, each release was its own branch
off RELENG_4). That branch was created from HEAD at the beginning of
2000. This year, it finally got EOL'd. It's had commits as recently
as a week ago (literally; about 2 hours short of 7 days ago as I type
this). It's been a continually updated, publically visible and very
publically accessed branch for over 7 years.
I've never explicitly pull'd it. Or explicitly branch'd it. I didn't
have to. Just the fact that it exists in the main CVS repo means I
get it when I do my nightly-ish cvsup to update my mirror. It's right
there when I want to poke into the RELENG_4 history, which happened
with some regularity. If I'd had to explicitly 'branch' RELENG_4, I
never would have looked at it, because it would never have been worth
waiting all the time it would take to create that branch at the time I
had an itch to look into it. I would probably never have branched any
of RELENG_4_x (the release branches) at all, because I don't run 'em.
But I've had cases where poking at the history was useful, and because
I already got it, it was easily done. And I'm not even remotely an
abberation in that community; this is pretty SOP.
There are short-lived and long-lived dev branches of FreeBSD I
wouldn't want to pull down. But they wouldn't be put in the main repo
(and not just because you can't usefully do that sort of thing with
CVS ;). The main repo would have HEAD and the release-series and
release branches, and anything else would have to meet a VERY high bar
for broad usefullness to appear there. It would almost be
tautological that I'd want to mirror the whole thing, since the
criterion would be pretty much "would this branch be generally useful
to the community". The RELENG_7 branch for the upcoming 7.x release
series was created about a week ago; with no effort on my part, I had
it the next night. If I didn't, I probably wouldn't think of it until
I had a need for it, and then it would be too late; I'd have to wait
on my tools.
Now, the FreeBSD project (as a development community, and as a user
community) may be much more tightly centered around verson control
than most projects. But I don't buy that it stands all alone. And
I'm confident that in that sort of community, walking up and offering
a VCS by saying "Look, you have to individually and explicitly name
every upstream branch you want to track" will elicit the response
"Goodbye".
FreeBSD has used CVS since its beginning. Until I started using bzr,
I was generally quite happy working with CVS. Now, I'm generally
quite happy using bzr. That can't be said about any of the other
VCSen I've tried. At some point, FreeBSD will move to a new VCS, and
I'd hate it to be some other tool that makes me twitch every time I
have to touch it merely because of a fixation on refusing to allow any
grouping other than 'branch'.
--
Matthew Fuller (MF4839) | fullermd at over-yonder.net
Systems/Network Administrator | http://www.over-yonder.net/~fullermd/
On the Internet, nobody can hear you scream.
More information about the bazaar
mailing list