Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 02 May 2002 15:37:25 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Drew Tomlinson <drew@mykitchentable.net>
Cc:        bmah@FreeBSD.ORG, Dave Hayes <dave@jetcafe.org>, freebsd-hackers@FreeBSD.ORG, freebsd-stable@FreeBSD.ORG
Subject:   Re: Difference between RELENG_* and RELENG_*_BP
Message-ID:  <3CD1BFA5.FD745354@mindspring.com>
References:  <200205022047.g42Klxb84582@hokkshideh2.jetcafe.org> <3CD1ACD6.5B2432DF@mindspring.com> <200205022128.g42LSXjr072995@intruder.bmah.org> <3CD1B790.DB547674@mindspring.com> <01c501c1f226$ecd7cfd0$6e2a6ba5@lc.ca.gov>

next in thread | previous in thread | raw e-mail | index | archive | help
Drew Tomlinson wrote:
> I'm just trying to understand. :)  How is RELENG_X_Y_BP different from
> RELENG_X_Y_RELEASE?

For the most part, studying the FreeBSD source tree is a good lesson
in how to be clever in your use of CVS.  The only place it really
falls down is in the lack of vendor tagging for things lice sendmail,
etc., which really want to be brought in on a vendor branch, and then
branch tagged then rtagged, so that local modifications can be done
without screwing with the ability to bring a new release of the code
in on the vendor branch, and then re-tag and re-merge it.

Archie Cobbs and Julian and Bryan Mann worked out a pretty good
system, which we used at Whistle, and then for those things that
didn't fit, I "rewrote history" by re-checking them in and retagging
them.

Archie wrote a little FAQ on that; I don't know if he'd be willing
to share it.

But to use the same approach for, for example, sendmail in FreeBSD,
would require some Makefile changes, some .mk file changes, and a
seperate parallel "module" branch (the main branch would check out
from the module branch *with a particular tag* as part of the build
process, and then descend into the checked out code).  It's not
impossible to build without a CVS tree if you do that, but it makes
it harder, so it's probably not an acceptable approach for FreeBSD
to use directly.

But to answer directly the question:

RELENG_X_Y_RELEASE marks "end of work"

RELENG_X_Y_BP marks "start of work".

If you look at the diagram on the referenced web page, you end up
with two different branch heads.

--

Like I said, you need a third dimension, or an angled line (pseudo
Z axis) to represent it in a two dimensional diagram.  I'll use
indentation (below) to represent an X/Z diagram off the RELENG_4
point in the X/Y diagram.

If it weren't for the need to rtag it to get the -SECURITY branch
head, the _BP version would probably not have been done with an
rtag, and would use a simple tag, instead.

Look at the example in the middle.  It's confusing, because you
would expect the tag ordering to be:

	RELENG_4
		RELENG_4_4		<---.--- could use "tag"
		RELENG_4_4_BP		<---'
			RELENG_4_4_RELEASE

because you would expect that, as time goes on, you would tack
more and more suffixes onto the thing.  But the actual ordering is:

	RELENG_4
		RELENG_4_4_BP		<---.--- needs "rtag"
			RELENG_4_4	<---'
		RELENG_4_4_RELEASE	<--- From -STABLE, not -SECURITY

Make sense now?

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CD1BFA5.FD745354>