[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Using branches for safely updating a website

From: Jouni Heikniemi
Subject: Re: Using branches for safely updating a website
Date: Mon, 1 Jul 2002 18:55:30 +0300 (EEST)

On Mon, 1 Jul 2002, Matthew Nuzum wrote:

> Using your experiences with CVS, can you recommend one of the two
> solutions or suggest another?  Manageability is high on my list of
> priorities.

Depends on the details. Without going too much into thinking about it,
I'll just throw up miscellaneous blabber:

Consider the needs for your development process. Are you going to need
branches for parallel development a) never, b) sometimes, c) often?
Consider how you would organize those branches. Try to avoid deep
branching, it gets you confused in no time. I'd say it's usually better to
have a clean branch and dev trunk (and possibly dev branches, too) than
the other way around, but it depends on many factors.

Unless you're running something ridiculously complex (I don't think a
few thousand files is _ridiculously_ complex yet :-)) and something you
really must have very up-to-date all the time, I'd suggest the following:  

Use the trunk for development and when you're in a clean spot (you feel
that all the changes are properly tested and the site works fine), tag the
revisions to form a release version, and then update the live site to that
tag. Latter, if you need bug fixes and can't wait for the next stable
point in the trunk, branch off from the latest version tag and do fixes
("WebSite 2.5" might produce a "WebSite 2.5.1" patch version if the trunk
is not ready for "Website 2.6").

That means a bit more work since you have to do the release mechanics at
least semi-manually, but it also grants you a better view of the changes
and their effects on the software. You can have an auto-updating replica
site using a loginfo script and pulling the trunk tip continously - that
way you have live testing site available at all times.

If the above doesn't work because of too many simultaneous developers (for
example), find a decently stable point in the trunk, branch from there and
form a clean branch. When you're done stabilizing the branch, update it to
the site. 

Hope this helps,


Ps. If you think manually updating the site is problematic and don't want
to bother with versioning, you can add a cron job which does something
like "cvs update -r READY-FOR-PUBLISHING" on a regular basis. Then
you can just "cvs tag -FR READY-FOR-PUBLISHING file1 file2 file3" to get
updated and tested files live.

Pps. Website versioning is greatly underestimated. It slows down the rate
that users see the enhancements you make, but it makes managing the site
much easier AND increases quality. Consider this :-)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]