| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE html |
| PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta |
| http-equiv="Content-Type" |
| content="text/html; charset=UTF-8" /> |
| <meta |
| http-equiv="Content-Type" |
| content="text/html; charset=iso-8859-1" /> |
| <link |
| rel="stylesheet" |
| href="../../../../default_style.css" |
| type="text/css" /> |
| <link |
| rel="stylesheet" |
| href="../../../../webtools/wtp.css" |
| type="text/css" /> |
| <title>Web Tools Platform 1.5 Maintenance Branching Strategy</title> |
| </head> |
| <body> |
| <table |
| width="100%" |
| cellspacing="5" |
| cellpadding="2" |
| border="0"> |
| <tbody> |
| <tr> |
| <td |
| width="60%" |
| align="left"><font class="indextop">Web Tools Platform 1.5 Maintenance Branching Strategy</font> <br /> |
| <font class="indexsub">Web Tools Platform 1.5 Maintenance Branching Strategy</font></td> |
| <td width="40%"><img |
| width="207" |
| hspace="50" |
| height="129" |
| align="middle" |
| src="../../../../webtools/images/wtplogosmall.jpg" |
| alt="" /></td> |
| </tr> |
| </tbody> |
| </table> |
| <table |
| width="100%" |
| cellspacing="5" |
| cellpadding="2" |
| border="0"> |
| <col width="16" /> |
| <col width="*" /> |
| <tbody> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p align="right"><em>Updated 2006-07-07</em></p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| bgcolor="#0080c0" |
| align="left" |
| colspan="2"><b><font |
| face="Arial,Helvetica" |
| color="#ffffff">Introduction</font></b></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>Branch name: <b>R1_5_maintenance</b></p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>The document details the branching strategy for the WTP 1.5 maintenance release. Plug-ins and |
| features will be branched on demand. This means you do not need to branch if your fix is common to both the |
| 1.5 and 2.0 (HEAD) stream. You will need to branch if you are committing a fix that is only applicable for |
| the 2.0 but not the 1.5 stream, or vice versa.</p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| bgcolor="#0080c0" |
| align="left" |
| colspan="2"><b><font |
| face="Arial,Helvetica" |
| color="#ffffff">Deciding which stream your fix is applicable for</font></b></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>Before you fix anything, the first thing to think about is which stream your fix is applicable for. |
| Is it only applicable for the 1.5 maintenance stream, or only for the 2.0 (HEAD) stream, or both? In |
| general, any bug fixes that go into the 1.5 maintenance stream should also go into the 2.0 (HEAD) stream. If |
| your fix is a breaking change (ex. change in API), an enhancement, etc, then it should go only into the 2.0 |
| (HEAD) stream and not the 1.5 maintenance stream. <br /> |
| <br /> |
| If your fix is applicable for both the 1.5 maintenance and 2.0 (HEAD) stream, go <a href="#common">here</a> |
| <br /> |
| If your fix is only applicable for the 2.0 (HEAD) stream, go <a href="#HEAD_only">here</a></p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"><a id="common"></a></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| bgcolor="#0080c0" |
| align="left" |
| colspan="2"><b><font |
| face="Arial,Helvetica" |
| color="#ffffff">Fixing a bug that is common to both the 1.5 maintenance and 2.0 HEAD stream</font></b></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>So your fix is common to both the 1.5 maintenance stream and the 2.0 (HEAD) stream. For this |
| scenario, my recommandation is to check out the 1.5 maintenance version of the plug-in/feature, check in the |
| fix and retrofit the fix back to the 2.0 (HEAD) stream. To check out the correct 1.5 maintenance version of |
| your plug-in/feature...</p> |
| <ol> |
| <li>First, check if your plug-in/feature has been branched or not. If so, you'll need to check out |
| the branched version of the plug-in/feature. Otherwise you'll check out the plug-in/feature from HEAD. |
| I'll use one of the WST plug-in as an example. In the CVS Repositories view, expand the <b>Branches</b> |
| node and see if the 1.5 maintenance branch is already configured. If it is not configured, read on. |
| Otherwise, go <a href="#common1">here</a>. |
| <p><img |
| src="fig1.gif" |
| alt="" /></p> |
| </li> |
| <li>To configure the 1.5 maintenance branch, right click on the wst folder (right click on the jst |
| folder if you are working with jst plug-ins/features) > Team > Configure Branches and Versions... |
| </li> |
| <li>In the popup dialog, browse for any files in your plug-in/feature. After you do that, a list of |
| available tag name will show up in the RHS panel. |
| <p><img |
| src="fig2.gif" |
| alt="" /></p> |
| </li> |
| <li>If you don't see the <b>R1_5_maintenance</b> tag, that means your plug-in/feature is not |
| branched. In this case, you can check out the plug-in/feature from HEAD, check in your fix and release |
| your changes to both the 1.5.1 and 2.0 map files. More information on releasing is available <a |
| href="#release_15">here</a>.</li> |
| <li>If you see the <b>R1_5_maintenance</b> tag, that means this plug-in/feature has already been |
| branched. Click the Deselect All button > check the <b>R1_5_maintenance</b> tag > click the Add |
| Checked Tag button > OK. |
| <p><img |
| src="fig3.gif" |
| alt="" /></p> |
| </li> |
| <li><a id="common1"></a> In the CVS Repositories view, expand the Branches node > expand |
| R1_5_maintenance > browse for your plug-in/feature and check it out to your workspace. You can now |
| fix and release your changes. One thing to be careful is that since your plug-in/feature is already |
| branched, the changes that you made to the branched plug-in/feature should only be released to the 1.5 |
| maintenance stream and not the 2.0 (HEAD) stream. <a href="#release_15">Here's how</a> to release to the |
| 1.5 maintenance stream. After you fix and release to the 1.5 maintenance stream, you need to check out |
| the same plug-in/feature from HEAD again and release the changes to the 2.0 (HEAD) stream. <a |
| href="#release_HEAD">Here's how</a> to release to the 2.0 (HEAD) stream. |
| <p><img |
| src="fig4.gif" |
| alt="" /></p> |
| </li> |
| </ol> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"><a id="#HEAD_only"></a></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| bgcolor="#0080c0" |
| align="left" |
| colspan="2"><b><font |
| face="Arial,Helvetica" |
| color="#ffffff">Fixing 2.0 only bug</font></b></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>Before you commit your 2.0 only bug fix, you must branch your plug-in/feature (assuming it is not |
| already branched). To check whether a plug-in/feature is branched or not, follow the instructions outlined |
| in the <a href="#common"> previous section</a>.</p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>For 2.0 only bug fixes, the first thing that you should do is check out your plug-in/feature from |
| HEAD to your workspace. If your plug-in/feature is not yet branched, branch it now. Here's how...</p> |
| <ol> |
| <li>In your workspace, right click on the plug-in/feature project > Team > Branch...</li> |
| <li>Enter <b>R1_5_maintenance</b> as the branch name > OK. |
| <p><img |
| src="fig5.gif" |
| alt="" /></p> |
| </li> |
| <li>That's it. You have branched your plug-in/feature. The following figures show you the |
| difference between a plug-in from HEAD and a plug-in from the 1.5 maintenance branch. |
| <p><img |
| src="fig6.gif" |
| alt="" /> <img |
| src="fig7.gif" |
| alt="" /></p> |
| </li> |
| </ol> |
| The only thing left to do is to fix your code and <a href="#release_HEAD">release</a> your changes to the |
| 2.0 (HEAD) stream. Just a reminder that you DO NOT need to release your changes to the 1.5 maintenance |
| stream. |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>We have created a document to keep track of the current status of WTP 1.5 branching. The document is |
| located <a href="http://www.eclipse.org/webtools/development/cvs_branches.html">here</a>. If you have |
| branched a plug-in/feature, please update the document.</p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"><a id="release_15"></a></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| bgcolor="#0080c0" |
| align="left" |
| colspan="2"><b><font |
| face="Arial,Helvetica" |
| color="#ffffff">Releasing fixes to the 1.5 maintenance stream</font></b></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p></p> |
| <ol> |
| <li>In the CVS Repositories view, expand the HEAD node > right click on the releng project > |
| Configure Branches and Versions...</li> |
| <li>In the LHS panel, select any files. After you do that, a list of available tag name will show |
| up in the RHS panel. |
| <p><img |
| src="fig2.gif" |
| alt="" /></p> |
| </li> |
| <li>Click the Deselect All button > check the R1_5_maintenance tag > click the Add Checked |
| Tag button > OK. |
| <p><img |
| src="fig3.gif" |
| alt="" /></p> |
| </li> |
| <li>In the CVS Repositories view, expand the Branches node > expand R1_5_maintenance > right |
| click on the releng project > Check out. |
| <p><img |
| src="fig8.gif" |
| alt="" /></p> |
| </li> |
| <li>You can now release your changes to the newly checked out releng project. I recommand using |
| different tag names for the 1.5 and 2.0 (HEAD) map files.</li> |
| </ol> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"><a id="release_HEAD"></a></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| bgcolor="#0080c0" |
| align="left" |
| colspan="2"><b><font |
| face="Arial,Helvetica" |
| color="#ffffff">Releasing fixes to the 2.0 HEAD stream</font></b></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>Check out the releng project from HEAD and release your changes to it. I recommand using different |
| tag names for the 1.5 and 2.0 (HEAD) map files.</p> |
| </td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| bgcolor="#0080c0" |
| align="left" |
| colspan="2"><b><font |
| face="Arial,Helvetica" |
| color="#ffffff">Other</font></b></td> |
| </tr> |
| <tr> |
| <td |
| valign="top" |
| align="right"> </td> |
| <td valign="top"> |
| <p>Retrofitting/merging changes between the 1.5 maintenance stream and the 2.0 (HEAD) stream can be time |
| consuming. There is an Eclipse tool available that helps you retrofit/merge changes between a branch and |
| HEAD. For more information, click <a |
| href="http://www.eclipse.org/articles/Article-CVS-branching/eclipse_branch.html">here</a>.</p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </body> |
| </html> |