From de5d935135bd536666b5fd03445b04d2ea82f1b4 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 24 Mar 2005 13:54:46 +0000 Subject: [PATCH] Merged this file into HEAD --- src/README.cvs | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/README.cvs diff --git a/src/README.cvs b/src/README.cvs new file mode 100644 index 00000000..56a24f9f --- /dev/null +++ b/src/README.cvs @@ -0,0 +1,65 @@ +Changes should be committed to the CVS HEAD only when they are in a +working state. The definition of "working" is somewhat liquid; a good +guiding principle is that anyone checking out HEAD should receive a +checkout of working software. + +When you want to work on changes that are likely to temporarily break +large swathes of code, you should probably work on a private branch. +Since CVS branching and merging is something of a black art, here are +some simple step-by-step instructions for creating and using a branch. + +To create your private branch: + + # Get most up-to-date tree before branching + cvs update + # Create a branch called "my-branch" + cvs tag -b my-branch + # Switch working copy to the "my-branch" branch + cvs update -r my-branch + +At this point you'll be on a branch called "my-branch". Any changes +you make will not affect people working on HEAD, or on other branches. + +Use name for your branch that is both descriptive and unique. +Starting the branch name with your SourceForge username +(e.g. "mcb30-realmode-redesign") is a good idea. + +When you want to merge the changes on your branch back into HEAD, do +the following: + + # Ensure there are no not-yet-checked-in modifications in your tree) + cvs -q update + # Tag the merge point in the "my-branch" branch + cvs tag -c my-branch-merge-1 + # Switch working copy back to HEAD + cvs update -A + # Merge changes from the branch + cvs update -j my-branch + # Commit merged changes to HEAD + cvs commit + +If you then want to continue working further on the "my-branch" branch, +do the following + + # Switch working copy back to the "my-branch" branch + cvs update -r my-branch + +and then when you want to merge some more changes back to HEAD: + + # Ensure there are no not-yet-checked-in modifications in your tree) + cvs -q update + # Tag the merge point in the "my-branch" branch + cvs tag -c my-branch-merge-2 + # Switch working copy back to HEAD + cvs update -A + # Merge changes from the branch + cvs update -j my-branch-merge-1 -j my-branch + # Commit merged changes to HEAD + cvs commit + +Note that the format of the "merge changes from the branch" command has +changed, because this time you need to only merge changes since the last +merge point. + +When you have finished with your branch and merged all the changes +back to HEAD, simply stop using the branch.