Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.
On Fri, 16 Jun 2006 10:42:49 -0400, Matt Neimeyer <matt at neimeyer.org> wrote: >I'm kind of being tossed into the deep end with regard to "source file >management" for one of our products and I'm trying to see if there is an easier >way. I apologize if I'm not asking the right way... > >I've been looking at CVSNT's Merge Points.... > >Our problem is that we customize a PHP Application for each of our clients. So >we have 40-50 source folders that are 90-95% the same. When we get a new client >we copy the "Master" and start customizing it. If someone finds a bug or comes >up with a nifty request that we want to port to everyone we have to diff from >the customized program back to the master, then re-diff that change back out to >the other clients. That's an all day process (to carefully diff everything and >make sure their customizations are not screwed up.) > >We do it this way because "that's the way it's done". I'm trying to find a >better solution. > >Will MergePoints allow me to use Branches to control the common code? So that >when I make a change to a common file that is NOT customized per client it >propigates automatically? Or even better, that files that are customized with a >common portion could be updated. (Lines 1-20 and 30-EOF are always the same....) > >Am I'm completely off my rocker? Is it going to be just as much work to do this >in CVS as it would be on the file system? Any advice? > With CVS you can define "virtual" modules that contain files from a common codebase that are never changed except when bugs are found and some files that are always changed. The trick is to place these types of files in different directories. When you check out such a module you will get a copy of all the files you specified. Once this is done you can branch the folders containing the customized files to a Cutomer_branch and work on them. Mergepoints are just an implementation detail of how branches are managed in CVS and should be of no concern for you, except that you know that branches do work.... If there are bugfixes on the common code then you can easily get them to your project files by cvs update. This can be done on all of your projects and the source is in one single place so there is no needs for the procedure you describe. If I were you I would pick up one of the books on CVS and read it. MarchHare (developers of CVSNT) has an E-book for sale covering how to work with CVSNT in particular. HTH /Bo (Bo Berglund, developer in Sweden)