-- svn notes for dealing with branches

1. Creating a branch from the trunk
  # in a directory in the trunk, do:
  # (my-new-branch, M2-my-new-working-copy names that will change!)

  svn copy ^/trunk/M2 ^/branches/mike/my-new-branch -m "Creating a branch for doing xxx"

  # then do either:

  svn co ^/branches/mike/my-new-branch ~/src/M2-my-new-working-copy

  # or (in the top lvel of the working copy, if there is one):

  svn switch ^/branches/mike/my-new-branch

2. merging trunk changes into the branch
  # MAKE SURE:
  #   a. you are in the top level of the branch, e.g. ~/src/M2-my-new-working-copy
  #   b. the trunk working copy is up to date

  svn merge ^/trunk/M2
  
  # now do usual: svn status, svn diff, etc, then:

  svn ci -m "merged in trunk changes"

3. Merging branch changes back to the trunk
  # MAKE SURE:
  #   a. you are in the top level of the trunk, e.g. ~/src/M2
  #   b. the trunk and branch working copies are up to date

  svn merge --reintegrate ^/branches/mike/my-new-branch

  # now do usual: svn status, svn diff, etc, then:
  svn ci -m "merged in branch changes doing xxx"
  
  # after that, can remove the branch, if desired.

  svn delete ^/branches/mike/my-new-branch -m "remove my-new-branch."

  # if you want to keep this working copy around, switch it (as in (1) above,
  # after creating yet a newer branch.)

Consider: svn mergeinfo

making a new copy of our branch
svn cp ^/branches/dan-mike/2010January svn://macaulay2.math.uiuc.edu/Macaulay2/branches/mike/2010March -m "creating new mike branch"
svn co ^/branches/mike/2010March ~/src/M2-branch-mike
svn rm ^/branches/mike/2010January -m "removing branch that has been reintegrated"

svn cp ^/branches/dan-mike/2010January svn://macaulay2.math.uiuc.edu/Macaulay2/branches/mike/2010March

-- merging in
svn merge ^/branches/dan-mike/2010January

