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

Re: [Testbed-admins] [geni-dev] Methods for managing local changes to Emulab source code



I know that several of you maintain local changes to your Emulab source
tree, and occasionally sync up to our CVS. For those of you who do, can
you give me a quick summary of how you do it, and how well you think it
works?

At CMU, we keep our sources in /usr/testbed-build/cvs_v$VERSION, where
$version is a sequential number based on when I either have updated our
tree after being out of sync for a long time or when I've submitted a
patch to you and I want to make sure that I included everything in a
patch.

Any local development generally happens right in that checkout so
"cvs diff" works as expected, although I keep a separate clean checkout
on a machine in my office to conveniently see the current code.

In the past I made a svn repository containing local mods, but ferrying
files between two repositories proved to be cumbersome. If I had access
to your CVS repository, I would probably create CVS branches.

We're looking at ways to make it easier for others to maintain local
changes, so I'd like to hear from anyone who has a solution that they
are (or aren't) happy with.

Moving to subversion and encouraging people to use branches would be
the easiest way, provided you're comfortable working with branches.
If you're willing to use much more complicated but powerful software,
distributed version control systems would be fantastic (but they greatly
up the cognitive load, sadly).

--
Pat Gunn
Principal Research Programmer/Analyst, CMCL
School of Computer Science, Carnegie Mellon University