[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Repository design question

From: Dave Grundgeiger <dave.grundgeiger_at_codenouveau.com>
Date: 2007-02-19 22:10:36 CET

Janine Sisk wrote:
> Each website that's based on it ends up containing some changes that I
> want to put back into the toolkit, and others that need to remain local
> customizations.

Well, it's a given that you're going to need to commit each kind of change
separately. That's the only way you'll be able to pull out the changes
intended for the toolkit. (You were probably already planning on that, but I
just wanted to mention it explicitly.)

Beyond that, I would probably have a separate branch for each customization,
as you said. I would do my work in the custom branch and frequently merge
toolkit-type changes to the toolkit branch. You'll need to make good log
comments so that it's easy to identify which changes are for the toolkit.
Some sort of test suite would come in handy here to make sure that you're
not breaking the toolkit. Presumably, you'll want to then merge the toolkit
changes to all of the other customer branches. Again, a test suite would
take a lot of pain out of the whole process.

I once used CruiseControl.NET to automate a process very much like this for
a C# .NET project. There were several parallel development projects going
on, and they had to be done in separate branches so as not to conflict with
each other. However, we didn't want integration problems when it came time
to merge. I had CruiseControl.NET monitor checkins and autobuild each
project as usual, but then after a successful build, it ran a custom NAnt
task (that I wrote in C#) to merge the committed changes to an integration
branch. A separate build process then built the integration branch to make
sure that it wasn't broken. As long as the integration branch build wasn't
broken, we knew that merging to the trunk down the road would be no problem.
In addition, when changes were made to the trunk, I had a process merge them
immediately to all of the custom branches. Your situation is more complex in
that you don't want all of the changes to be merged over--just the toolkit
ones. I just mention all of this to show that it is possible to automate the
process, though it's a bunch of work.

Dave

Dave Grundgeiger
CodeNouveau, LLC
Develop .NET Software with Open-Source Tools
http://www.codenouveau.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Feb 19 22:11:10 2007

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.