Since Thomas is talking about branches, I thought I would forward this advice I received off-list. I think it makes a lot of sense:
On Nov 2, 2006, at 9:00 AM, Jonas Bülow wrote:
Hi,
I have some 8 years of using CVS for 40-50 modules. As I understand you understand it is of great importance to have a good policy working with branches in CVS.
My principles for branches (shared by many others) can be summarized as:
- set a ordinary tag on the branch point, name it BRANCHED_VX_Y
- create a branch on the branchtag, call if BRANCH_VX_Y
Now, when you want to find what has happend on your branch you can diff from the branch point to the branch head by doing
cvs diff -r BRANCHED_VX_Y -r BRANCH_VX_Y
Many people forget to create a tag where the branch is created which makes it hard to syncronize between branches.
VX_Y is a symbol for the prefix of the version, i.e V0_39. V0_39_1 is then a tag on the branch.
Main development is performed on the main trunk. I.e with the above example there are no tags starting with V0_39 on the main trunk after the tag BRANCHED_V0_39. The first tag should be an increment, e.g V0_40 or higher.
CVS is not very user friendly doing merges between branches. The first merge beteen branches is simple, just use the BRANCHED_VX_Y- tag. merging the work on the branch BRANCH_VX_Y to HEAD (symbolic name for main trunk) by doing "cvs update -j BRANCHED_V0_39 -j V0_39_1" in HEAD.
If you do incremental merges from one branch to another you need to manually keep track of points of merge. A good habit is to tag these point as MERGED_FROM_xxx on the target and MERGED_TO_xxx on the source. The next time you to a merge you use one of these tags to refere to from where the merge should be done.
Hans-Christoph Steiner wrote:
On Oct 30, 2006, at 3:24 PM, IOhannes m zmölnig wrote:
Hans-Christoph Steiner wrote:
Anyone have any good advice on making a branch in CVS? Or perhaps a good HOWTO? Its time to make a branch for the Pd-0.39.2-extended release.
what is your exact problem?
how does "cvs tag -b extended_0_39_2" (within the cvsroot) not fit your needs?
btw, googling for "cvs tag" returned http://www.psc.edu/~semke/ cvs_branches.html as the second hit (the first one was a dead link)
there is no magic involved in tagging.
btw, i thought someone mentioned a "best practice CVS" document a while ago ;-)
I know tagging, that's dead simple. I am talking about a branch. I can google "cvs tag" or "cvs branch" myself too, but a personal recommendation is worth a lot more than a google search. I am more interested in experience in managing changes in the branch. Some changes should get folded in to MAIN, others are only for the branch. I am sure there are things that you can do that will make your life easier when the time to merge comes. .hc
All information should be free. - the hacker ethic _______________________________________________ PD-dev mailing list PD-dev@iem.at http://lists.puredata.info/listinfo/pd-dev <jonas.bulow.vcf>
------------------------------------------------------------------------
On Mon, 4 Dec 2006, Hans-Christoph Steiner wrote:
Since Thomas is talking about branches, I thought I would forward this advice I received off-list. I think it makes a lot of sense: On Nov 2, 2006, at 9:00 AM, Jonas Bülow wrote:
Well, I'd prefer it if Jonas actually wrote directly on pd-dev, because this seems to be good advice for everybody, and that's why you forwarded it, but I'm just wondering why that mail was only sent to you in the first place...
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada