@@ -62,44 +62,11 @@ in mind.
6262 :file: `MANIFEST.in `. This file determines what goes into the source
6363 distribution of the mpl build.
6464
65- * Keep the maintenance branch and trunk in sync where it makes sense.
66- If there is a bug on both that needs fixing, use `svnmerge.py
65+ * Keep the maintenance branch (0.91) the latest release branch (eg
66+ 0.98.4) and trunk in sync where it makes sense. If there is a bug
67+ on both that needs fixing, use `svnmerge.py
6768 <http://www.orcaware.com/svn/wiki/Svnmerge.py> `_ to keep them in
68- sync. The basic procedure is:
69-
70- * install ``svnmerge.py `` in your PATH::
71-
72- > wget http://svn.collab.net/repos/svn/trunk/contrib/client-side/\
73- svnmerge/svnmerge.py
74-
75- * get a svn copy of the maintenance branch and the trunk (see above)
76-
77- * Michael advises making the change on the branch and committing
78- it. Make sure you svn upped on the trunk and have no local
79- modifications, and then from the svn trunk do::
80-
81- > svnmerge.py merge
82-
83- If you wish to merge only specific revisions (in an unusual
84- situation), do::
85-
86- > svnmerge.py merge -rNNN1-NNN2
87-
88- where the ``NNN `` are the revision numbers. Ranges are also
89- acceptable.
90-
91- The merge may have found some conflicts (code that must be
92- manually resolved). Correct those conflicts, build matplotlib and
93- test your choices. If you have resolved any conflicts, you can
94- let svn clean up the conflict files for you::
95-
96- > svn -R resolved .
97-
98- ``svnmerge.py `` automatically creates a file containing the commit
99- messages, so you are ready to make the commit::
100-
101- > svn commit -F svnmerge-commit-message.txt
102-
69+ sync. See :ref: `svn-merge ` below.
10370
10471.. _style-guide :
10572
@@ -385,9 +352,83 @@ external backend via the ``module`` directive. if
385352 > python simple_plot.py -d module://my_backend
386353
387354
355+ .. _svn-merge :
356+
357+ Using svn-merge
358+ ================
359+
360+ The basic procedure is:
361+
362+ * install ``svnmerge.py `` in your PATH::
363+
364+ > wget http://svn.collab.net/repos/svn/trunk/contrib/client-side/\
365+ svnmerge/svnmerge.py
366+
367+ * get a svn copy of the maintenance branch and the trunk (see above)
368+
369+ * Michael advises making the change on the branch and committing it.
370+ Make sure you svn upped on the trunk and have no local
371+ modifications, and then from the svn trunk do::
372+
373+ svnmerge.py merge
374+
375+ If you wish to merge only specific revisions (in an unusual
376+ situation), do::
377+
378+ > svnmerge.py merge -rNNN1-NNN2
379+
380+ where the ``NNN `` are the revision numbers. Ranges are also
381+ acceptable.
382+
383+ The merge may have found some conflicts (code that must be manually
384+ resolved). Correct those conflicts, build matplotlib and test your
385+ choices. If you have resolved any conflicts, you can let svn clean
386+ up the conflict files for you::
387+
388+ > svn -R resolved .
389+
390+ ``svnmerge.py `` automatically creates a file containing the commit
391+ messages, so you are ready to make the commit::
392+
393+ > svn commit -F svnmerge-commit-message.txt
394+
395+
396+ * You can add a new branch for the trunk to "track" using
397+ "svnmerge.py init", e.g., from a working copy of the trunk::
398+
399+ > svnmerge.py init https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_98_4_maint
400+ property 'svnmerge-integrated' set on '.'
401+
402+ After doing a "svn commit" on this, this merge tracking is available
403+ to everyone, so there's no need for anyone else to do the "svnmerge
404+ init". I'll go ahead and commit this now.
405+
406+ Now, the trunk is tracking two branches for merges, 0.91.x and
407+ 0.98.4. This means that when doing a merge, one must manually
408+ specify which branch to merge from using the "-S" parameter. You
409+ can see which branches are available for merge using "svnmerge.py
410+ avail"::
411+
412+ > svnmerge.py avail
413+ svnmerge: multiple sources found. Explicit source argument (-S/--source) required.
414+ The merge sources available are:
415+ /branches/v0_91_maint
416+ /branches/v0_98_4_maint
417+
418+ So to merge from 0.98.4, one would type::
419+
420+ > svnmerge.py --source v0_98_4_maint merge
421+
422+ (rather than the "svnmerge.py merge" we used to do).
388423
424+ * The tracking for 0.98.4 can be removed with the "svnmerge.py
425+ uninit" command, e.g.::
389426
427+ > svnmerge.py --source v0_9_4_maint uninit
390428
429+ This will make merging slightly easier, (since the -S parameter is
430+ not required), and it is generally good practice in the long run to
431+ not keep extra branches lying around.
391432
392433.. _license-discussion :
393434
0 commit comments