Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
svn:release_cycle [2010/08/28 14:01]
Toni Corvera
svn:release_cycle [2011/08/01 17:15]
Toni Corvera Major cleanup/overhaul
Line 8: Line 8:
   * Tags are never modified   * Tags are never modified
  
-FIXMEBackporting still untested+Legend''​[x] $''​ marks directory from which to run –''​wcopy''​ for working copy–, for ''​$''​ directory doesn'​t matter
  
-Example: Working on branch 1.1 of ''​foo''​ (''​[x]$''​ marks directory from which to run –''​wcopy''​ for working copy–, for ''​$''​ directory doesn'​t matter)+===== Cycle =====
  
-  [wcopy]$ svn update +Work on branch: 
-  ​[wcopy]$ svn ci -m "* Last commit before merging"​ +          $ svn co url://.../branches/BRANCH_X 
-         $ svn co url://TRUNK +  [wcopy] $ svn ci
-  [trunk]$ svn merge --reintegrate url://​BRANCHES/​1-1 ​    # --reintegrate vital here (except if re-merging)! Note the final dot! +
-  [trunk]$ svn ci -m "* Merge branch 1.1 to trunk"​ +
-         $ svn copy url://TRUNK url://​TAGS/​1.+
-         $ svn rm url://BRANCHES/​1.1 +
-         $ svn copy url://​TAGS/​1.1 url://​BRANCHES/​1.2 ​      # or 1.1.1 +
-  [wcopy]$ svn switch url://​BRANCHES/​1.2+
  
-Release+"​Promote"​ branch to trunk
-         ​$ svn export ​url://TAGS/1.1 +  ​[wcopy] ​$ svn ci -m "Last commit before merge"​ 
-    [1.1]$ # package etc.+  [wcopy] $ svn log --verbose --stop-on-copy ​  # Identify branching revision, e.g. 1600 
 +  [wcopy] $ svn sw url://.../TRUNK             # Working copy changes to trunk 
 +  [wcopy] $ svn update ​                        # Get HEAD revision, e.g. 1700 
 +  [wcopy] $ svn merge -r1600:HEAD url://.../​branches/​BRANCH_X . 
 +          (Fix conflicts, if any) 
 +  [wcopy] $ svn ci -m "Merge from branch X to trunk, r1600:​1700" ​Logging the revision range will be useful for future 'svn log'
  
-===== Merge from parallel branches =====+Incremental merges: Subsequent merges ​from the same branch should skip revisions already merged (i.e. "-r 1701:​HEAD"​)
  
-''​svn merge''​ acts as a normal diff\\ +"​Release":​ 
-''​svn merge -r R1:R2''​ acts as a three-way diff.+          $ svn copy url://.../TRUNK url://​.../​TAGS/​RELEASE_X -m "​Release X" 
 +          ​$ ​svn rm url://​.../​BRANCHES/​BRANCH_H ​-m "​Delete merged branch"​ 
 +          $ svn copy url://.../TRUNK url://​.../​BRANCHES/​BRANCH_Y ​-m "​Branch Y" 
 +  [wcopy] $ svn sw url://.../​BRANCHES/​BRANCH_Y ​             # Switch to new branch for development 
 +          
 +          $ svn export url://​.../​TAGS/​RELEASE_X X 
 +     ​[X] ​  ​(package,​ etc. to actually release) 
 +The tree will retain merge information (source branches and revisions), display with: 
 +  [wcopy] $ svn pg svn:​mergeinfo
  
-Ref: http://​svnbook.red-bean.com/​en/​1.0/​ch04s04.html+===== Unclean merge =====
  
-         $ svn log --verbose --stop-on-copy # Identify ​branching ​revisione.g. 1600 +When branching ​and merging hasn't been handled too wellthis can help:
-  [wcopy]$ svn update # Identify HEAD, e.g. 1700 +
-  [wcopy]$ svn merge -r1600:HEAD url://​SOURCE_BRANCH . +
-         # Fix conflicts. Only *actual* conflicts should be shown, normal changes should integrate correctly +
-  [wcopy]$ svn ci -m "* Merge from branch X, r1600:​1700"​ # Log revisions for later merges (check with ''​svn log''​)+
  
-Later merges should be restricted to the non-merged revisions:+  [trunk] $ svn merge --reintegrate url://​.../​BRANCHES/​BRANCH_X .
  
-  [wcopy]$ ​svn merge -r 1701:HEAD url://SOURCE_BRANCH ​.+===== Notes ===== 
 + 
 +  * ''​svn merge''​ acts as a normal diff. 
 +  * ''​svn merge -r R1:R2''​ acts as a three-way diff. 
 +  * Notice the dot at the end of ''​merge''​ lines 
 +  * FIXME: Backporting still untested 
 + 
 +Ref: http://svnbook.red-bean.com/​en/​1.0/​ch04s04.html
  
svn/release_cycle.txt · Last modified: 2011/08/01 17:15 by Toni Corvera
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki