HowToExperimentalBranch

Created by: btodoroff, Last modification: 01 May 2004 (04:56 UTC) by SEWilco

How do I create and maintain a branch for a radical experiment?


Below here is in proposal status - btodoroff
Please don't try to use these yet, but please read them and make suggestions.

How to Create the Branch
  1. Select a branch name and post in on CurrentBranches. Try to make it short but descriptive and not too close to the existing branches.
  2. Create a wiki page called Branch<branchname> and write up a quick description of what it is you are trying to do in the branch. Keep it upto date with things you learn, and the state of the code in the branch. Don't worry abount making it pretty, just try to keep it reasonably current.
  3. Create a NEW working directory for your experiment and checkout the lastest development code. Always branch from development, as new features will NEVER get added directly to STABLE or TESTING.
  4. Create a cvs tag called <branchname>-lastfromhead from your new working directory. This tag will be used to merge code changes from HEAD into your branch.
  5. Creata a branch from your working directory called <branchname>
  6. Join your working directory to your new branch. Remember that createing the branch doesn't move your working directory to that branch.
  7. Create a tag called <branchname>-lasttohead. This tag may eventually be used to move your experiment into the main trunk. It's good to create it now.
  8. Now you can start working on your experimental code. Go wild! (:biggrin:)

How to Merge the Latest DEVELOPMENT Code Into Your Experiment
  1. Make sure your experimental code is in a state that you are willing to commit into your CVS branch.
  2. Update your main DEVELOPMENT working directory with update -dP to make sure you have the latest code.
  3. Still in your DEVELOPMENT working directory create a tag called <branchname>-nextfromhead to mark your place.
  4. Use in your experimental working directory update -j <branchname>-lastfromhead -j <branchname>-nextfromhead. This will merge in all the recent changes into your experiment.
  5. Resolve any conflicts incountered in the merge in the normal way, then commit the updated code to CVS.
  6. Once you have commited the changes go back to you main DEVELOPMENT working directory and re-create the tag <branchname>-lastfromhead to mark where you last synced to.
  7. Go back to your wild experimentation! (:cool:)</branchname></branchname></branchname></branchname></branchname></branchname></branchname></branchname>