You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

This document has information about how to manage branches in grouper.  Assumes using Eclipse.

Standards

Example branch name: GROUPER_1_6_BRANCH

Example branch merge point: just commit the misc/merge.txt

How do I work in a branch?

You need to checkout that branch from SVN, and work in it.  Here is how:

  1. You should probably close all projects of different branches since the names will conflict.  Or you can rename with the branch in the name (e.g. grouper_trunk)
  2. If you have the branch checked out, just import the project into eclipse, or open the project
  3. If not, then:
    1. Go to the SVN Repositories perspective
    2. Go to branches and the branch name
  4. Do not work in a tag (i.e. do not commit to a tag), only work in trunk or a branch

Which branch should I work in, and when?  How to merge?

If you are making a change for the next major release (or before a branch has been made for a release), use trunk.

Note: Anonymous access to Grouper's SVN url is provided via: http://anonsvn.internet2.edu/svn/i2mi/trunk/

Note: The web viewvc for Grouper is here: http://anonsvn.internet2.edu/viewvc/viewvc.py/i2mi/trunk/

If you are making a fix for a previous branch, then (instructions for subclipse eclipse SVN plugin):

  1. Make the change in the oldest branch first (see instructions above)
  2. Commit the change (and keep loose track of which files were touched)
  3. Open the second-most-recent branch, and sync.  Then right click and click Team->Merge.  Note, do this on the whole repository, not just one project
  4. Merge a range of revisions
  5. Uncheck "Perform pre-merge best practices check"
  6. Merge from, put the older branch (e.g. GROUPER_1_2_BRANCH)
  7. Select revisions on next page
  8. Select all revisions since the last merge from that branch to this branch (see in comments)
  9. You will see a synchronization of all files changed, and merge them all forward (even if not your changes, though you can communicate with who made those changes if you like)
    1. This means in the sync, get all the latest changes, figure out the conflicts, etc.  Get the changes from the right to the left of the sync window
  10. Make sure you have merged all the changes
  11. Generally launch the graphical editor for diffs
  12. Sync and commit the newer branch (e.g. GROUPER_1_3_BRANCH or HEAD).
  13. Make a change to the grouper/misc/merge.txt to indicate that a merge occurred in the past branch
  14. Now if the branch you merged to is not trunk, then merge that forward to all most recent branches with the same technique until you are merged to trunk
  • No labels