| <html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link type="text/css" href="../../../../default_style.css" rel="stylesheet"><link type="text/css" href="../../../../webtools/wtp.css" rel="stylesheet"><title>Web Tools Platform 1.5 Maintenance Branching Strategy</title></head><body><table border="0" cellpadding="2" cellspacing="5" width="100%"><tbody><tr><td align="left" width="60%"><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 src="../../../../webtools/images/wtplogosmall.jpg" align="middle" height="129" hspace="50" width="207" alt="WTP Logo" usemap="logomap"><map id="logomap" name="logomap"><area coords="0,0,207,129" href="/webtools/" alt="WTP Home"></map></td></tr></tbody></table><table border="0" cellpadding="2" cellspacing="5" width="100%"><col width="16"><col width="*"><tbody><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p align="right"><em>Updated 2006-07-07</em></p></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Introduction</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><p> |
| Branch name: <b>R1_5_maintenance</b> |
| </p></td></tr><tr><td align="right" valign="top"> |
| |
| </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 colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Deciding which stream your fix is applicable for</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </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 align="right" valign="top"> |
| |
| </td><td valign="top"><a id="common"></a></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Fixing a bug that is common to both the 1.5 maintenance and 2.0 HEAD stream</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </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... |
| |
| <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"></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"></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"></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"></p> |
| </li> |
| |
| </ol> |
| |
| </p></td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><a id="#HEAD_only"></a></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Fixing 2.0 only bug</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </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 align="right" valign="top"> |
| |
| </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... |
| <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"></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"> |
| <img src="fig7.gif"> |
| </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></td></tr><tr><td align="right" valign="top"> |
| |
| </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 align="right" valign="top"> |
| |
| </td><td valign="top"><a id="release_15"></a></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Releasing fixes to the 1.5 maintenance stream</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><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"></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"></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"></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></td></tr><tr><td align="right" valign="top"> |
| |
| </td><td valign="top"><a id="release_HEAD"></a></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Releasing fixes to the 2.0 HEAD stream</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </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 colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Other</font></b></td></tr><tr><td align="right" valign="top"> |
| |
| </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> |