A little bit of help understanding CVS and cvsup
Alex Zbyslaw
xfb52 at dial.pipex.com
Thu May 17 15:29:30 UTC 2007
Andrew Falanga wrote:
> Hi,
>
> This question probably hasn't much to do with CVS directly but using
> cvsup. I want/need to update a 6.0-RELEASE system. However, this
> system has some critical data on it and I'd rather not move to code
> that is perhaps experimental or "bleeding-edge" technology. I see in
> /usr/share/examples/cvsup several supfiles named various things. I
> see from the handbook that standard-supfile applies to, what seems
> like, the bleeding-edge and the stable-supfile is what I'm looking for
> .. yes?
>
> How do I ensure I update the sources to the most current, STABLE, branch?
You can find a description of release tags in the handbook.
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvs-tags.html
and also a description of -STABLE and -CURRENT
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html.
Later bits in that section also describe the update procedure *even if
you are updating to a RELEASE./RELENG rather then CURRENT or STABLE*.
A brief description of the strings in tags is a follows:
CURRENT == bleeding edge
STABLE == merely leading edge
RELENG == what you are calling "stable"; a release plus security patches
only
RELEASE == sort of you are calling stable, exactly what was released
(not recommended since it lacks any security patches)
The latest release is 6.2, so the tag you want in your supfile is
RELENG_6_2. That string won't be in any supfile on your system. It's
impossible for it to be, since that would require predicting what will
be the latest release at the point in the future when you chose to
upgrade :-)
In technical terms, CURRENT is the top of the main development trunk,
and is often referred to with a leading number (e.g. 7-CURRENT), but the
number does no more than denote the numeric tag that will be applied
when the next branch is made. Once 7.0 starts being created, CURRENT
will be 8-CURRENT.
STABLE is the latest branch. Code here will become the next Release.
Moving code from CURRENT to STABLE, involves a CVS merge operation and
is often referred to as MFC - merge from CURRENT.
RELENG is a branch created when a specific release is made. It denotes
the latest code on that branch, but the only changes made will be
critical security fixes.
RELEASE is just the point on the RELENG branch which is the actual code
which was released on the Release CDs.
--Alex
PS
Be really nice if all this info was clearly in the FAQ, and the FAQ was
searchable apart from the whole website. As things stand, a search for
"stable" returns precisely nothing, which can't be right.
More information about the freebsd-questions
mailing list