Changes between Version 32 and Version 33 of HowToBackport


Ignore:
Timestamp:
09/15/19 07:47:22 (5 years ago)
Author:
neteler
Comment:

Updated to git(hub)

Legend:

Unmodified
Added
Removed
Modified
  • HowToBackport

    v32 v33  
    11== Backporting ==
    22
    3 In the GRASS GIS project, we provide the latest stable release branch with bugfixes from trunk (development branch) as much as possible.
     3In the GRASS GIS project, we provide the latest stable release branch with bugfixes from !GitHub master (development branch) as much as possible.
    44
    55=== Procedure ===
    66
    7 Two little helper scripts to make merging between branches easier:
    8  * [browser:grass-addons/tools/svn64merge] (kept for rare backports to GRASS GIS 6)
    9  * **[browser:grass-addons/tools/svn-merge.sh]** (recommended for any GRASS GIS 7 release branch)
     7See
     8https://trac.osgeo.org/grass/wiki/HowToGit#Backportingtoreleasebranches
    109
    11 To use them, first make sure all branches are up to date (`svn up`) and clean (`svn diff`),
    12 then `cd` into the '''top''' of the source tree you want to ''pull '''in''' to''. If you try to run it from the module's own subdir it will fail.
    13 Then run the script named for the branch you want to pull ''from'', followed by the revision number of the change you wish to merge (no leading "r" or [square brackets] around the rev number please). Mind that you might want to run '`svn propdel svn:mergeinfo .`' before doing an untargeted 'svn commit'.
    14 
    15 Example:
    16 {{{
    17  # make the original edit in trunk
    18  cd trunk
    19  svn diff lib/gis/parser.c
    20  svn up lib/gis/parser.c
    21  vim lib/gis/parser.c
    22  svn diff lib/gis/parser.c
    23  # .. run make; test the change ..
    24  svn commit -m"libgis: fix of XYZW in parser" lib/gis/parser.c
    25  # --> note the rev number of this commit for an immediate or future backport
    26 
    27 
    28  # backport fix to the appropriate release branch (e.g. GRASS GIS 7.2.x)
    29  cd /path/to/grass72_release/
    30  # be sure to have a locally up-to-date branch
    31  svn up
    32  # use svn-merge.sh for the actual merge
    33  /path/to/grass-addons/tools/svn-merge.sh 12345   # using the rev number from above
    34  # verify the changes
    35  svn diff lib/gis/parser.c
    36  # .. run make; test the change ..
    37  svn commit -m"libgis: fix of XYZW in parser (trunk, r12345)" lib/gis/parser.c
    38 }}}
    3910
    4011=== Comparing branches ===
    4112
     13**Web browser based:**
     14
     15You can compare directly on !GitHub.
     16
     17**Local comparisons:**
     18
    4219A `diff` tool like Kompare, Kdiff3, or Meld can help. These run the standard UNIX "`diff -u`" utility and show the results in an easy to navigate GUI.
    4320
    44 You'll want to tell them to ignore the build files, svn paperwork files, compiled binaries, and "Last changed" timestamps on the help pages.
     21You'll want to tell them to ignore the build files, git files, compiled binaries, and "Last changed" timestamps on the help pages.
    4522This is typically done by going into the options and telling it to ignore a list of wildcard'ed path names, and regex filter for the document content.
    4623
    47 For example, to compare `trunk` and `relbr70` using `kdiff3`:
    48 ''(I used the QT version of Kdiff3, the other tools are similar)''
     24For example, to compare `grass_master` and `releasebranch_7_8` using `kdiff3`:
     25''(I used the QT version of Kdiff3, the other tools work in a similar way)''
    4926{{{
    50   cd grass/svn/
    51   svn checkout https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0 relbr70
    52   svn checkout https://svn.osgeo.org/grass/grass/trunk trunk
    53 
    54   kdiff3 relbr70/ trunk/
     27  kdiff3 releasebranch_7_8/ grass_master/
    5528}}}
    5629
     
    6538   * In the "Line-matching preprocessor command:" line add:
    6639{{{
    67 grep -v "Last changed: $Date: 2"
     40grep -v "Last changed: $Date:$"
    6841}}}
    6942     * ''(this will ignore the $Date:$ svn keywords at the end of the help pages)''
     
    8457 * make tests
    8558 * only fix bugs, do not introduce new features
    86  * only do refactoring in trunk
     59 * only do refactoring in master
    8760   * ''large and complicated changes can introduce new hard to spot bugs, the idea of the stable branch is to asymptote to zero bugs.''
    8861
    8962If the above is unclear, it should be discussed on the developers list. '''If in doubt, ask! '''
    9063In this case, a path/diff is appreciated.
    91 
    92 For general advice, see http://svnbook.red-bean.com/en/1.4/svn.branchmerge.copychanges.html