Forum OpenACS Q&A: Response to How do you separate project customisations from improvements?

Merging aross CVS branches is definitely better than manually applying patches, so you certainly want to use branches. (If you did a proper CVS vendor import of the OpenACS code when starting your own project, this should be easy to do.)

OK, so we're just getting started. I checked out openacs-4 from the openacs repository and imported it into my repository with

cvs import myservice openacs openacs4-cvs-20011029

So what should I do to implement the two-branch vision discussed here? Let's say I want to make changes that I want rolled back into the toolkit. I'm going to change two files: packages/acs-subsite/www/admin/site-map/parameter-set.tcl and packages/acs-tcl/tcl/defs-procs.tcl. Do I make the changes and tag those files only? Do I checkout all of myservice and tag the whole thing with a tag that will be for changes that we want to get added to the toolkit, and then change those files and merge the changes back into my main trunk? That scenario looks complicated--you would be forever checking in, merging, then checking out so you could test on your trunk.