OpenGL[tm] for Java[tm] Development Policies Last Updated on 8 February 2001 OVERVIEW The OpenGL[tm] for Java[tm] project has several development policies which all developers are required to observe: 1. All code development is to be done on CVS branches, not the trunk. 2. Branches are not merged into the trunk until the code as been well tested. 3. CVS tags follow a consistant naming convention. 4. Merges to the trunk must be timed so that they do not upset scheduled releases. Potential developers must accept these policies before joining the project. Anyone who does not follow these policies and causes problems will lose their CVS write privileges immediately, and probably forever. CVS CHECK-OUTS Registered developers can check out the GL4Java tree as follows: HOW TO CHECK OUT THE MAIN TRUNK export CVS_RSH=ssh cvs -z3 -dDEVELOPERNAME@cvs.gl4java.sourceforge.net:/cvsroot/gl4java co GL4Java HOW TO CHECK OUT A BRANCH cvs co -r --branch GL4Java HOW TO MAKE A BRANCH CASE 1: You have no checked out trees. If you want to use the main trunk as the anchor for your branch: cvs rtag -b --branch cvs co -b --branch If you want to use some other tag as the anchor for your branch: cvs rtag -b -r --branch cvs co -b --branch CASE 2: You have a checked out trunk, and you want to tag it and start using it as a branch: cd cvs tag -b --branch cvs update -r --branch This makes the --branch tag sticky. You can verify this by using 'cvs status', for example in ????/GL4Java, do this: cvs status Makefile or cvs status -v Makefile HOW TO MERGE THE TRUNK INTO YOUR BRANCH Before you merge your code into the trunk you should first merge the latest trunk code into your branch. After merged code has been tested on your branch, merging into the trunk should be simple. 0) Be sure all the changes on your branch are checked in. 1) Tag your branch with a 'freeze' tag: cvs tag ---freeze 2) Merge from the trunk: cvs update -j HEAD 3) Recompile and build your branch. Test it. 4) Check in your changes from the merge. 5) Tag your branch with a merge tag: cvs tag -- HOW TO MERGE YOUR BRANCH TO THE MAIN TRUNK 0) Be sure your ---merge tag (on the branch) is up to date (i.e., in case you changed some files from between the time you merged the trunk onto the branch until you merged the branch onto the trunk). You can make the tag with: cvs tag -- 1) Revert your working tree to the main trunk: cvs update -A [Alternatively, you can just check out a new copy of the main trunk.] 2) Merge in the changes from your branch: cvs update -j --branch 3) Test your merged tree 4) Check in your merged tree to the main branch; cvs commit -m 'Merged -' 5) Tag your merge so we can find it again: cvs tag ---merge 6) Now you can make diffs to send to XFree86 Say you keep hacking on your branch after the merge to test a few extra things and you want to merge again. You get the main trunk checked out, as in step (1), then you merge only those changes between your last merge and the most recent revision in your branch: cvs update -j -- -j --branch MISCELLANEOUS: How to turn off logging of large check-ins to the mailing list cvs co CVSROOT edit loginfo to comment out the mail notification line check in loginfo do your merge undo the change to loginfo