From: Bill Lear Date: Mon, 04 Jan 2010 13:29:28 GMT Subject: Re: Beginner's question on how to use git for multiple parallel versions Message-ID: <19265.60728.17437.665860@blake.zopyra.com> In-Reply-To: On Monday, January 4, 2010 at 12:29:52 (+0100) Christian C. Schouten writes: >Hello all, > >I've got a project that I want to do version management on with >git but being a beginner in cvs/svn/dvcs etc. terminology I >don't know yet how to set it up. My project needs to exist as >several parallel copies, i.e. there is a "main version" in >which I do my development but it needs to end up being available as a >couple of different configurations. For instance, say there is a file >table.xml then this needs to contain different rows for versions A and >B. Likewise, a file process.bpel needs to be named identical for each >version but contain different content depending on whether it is >distributed as version A or version B. Any changes made in non-version >specific files should be visible in all copies, but changes made to >version-specific files need to remain isolated to that particular >version. What you are asking for is this, I think: % git checkout A % cat table.xml % echo "
" > table.xml % git commit -a -m "fix table on Branch A" % git checkout B % cat table.xml
% echo "
" > table.xml % git commit -a -m "fix table on Branch B" % git checkout master % cat table.xml % cat process.bpel main line process stuff % echo "add more process stuff" >> process.bpel % git commit -a -m "fix process stuff on mainline" % git checkout A % git merge master % cat process.bpel main line process stuff add more process stuff % git checkout B % git merge master % cat process.bpel main line process stuff add more process stuff Is that not it? Bill