Howto backport changes in SOPE 4.5 to 4.4 ========================================= SOPE 4.4 is a Subversion branch (cheap copy) of the 4.3 trunk which then got bumbped to version 4.5. To backport bugfixes from 4.5 to 4.4, you can make use of Subversion merge facilities. Detailed information can be found in the Subversion book: http://svnbook.red-bean.com/en/1.1/index.html Note that revisions count for all branches! That is 4.4 and 4.5 have the same revision number which is increased for changes in both. Getting Logs on Changes ======================= To find out what has changed since a certain date you can use svn log. Go to the 4.5 directory with the fix and run: ---snip--- helge@move:~/dev/SOPE-4.5/sope-mime/NGMime$ svn log -r {20041212}:HEAD \ NGMimeRFC822DateHeaderFieldParser.m ------------------------------------------------------------------------ r430 | helge | 2004-12-09 17:45:48 +0100 (Thu, 09 Dec 2004) | 2 lines fixed an issue with future date headers and libFoundation ------------------------------------------------------------------------ ---snap--- Note that in the example I request the logs between 2004-12-12 and the current HEAD revision (aka trunk). If you reverse the range to "HEAD:{20041212}" you would get the output in reverse order (youngest logs on the top). The same request run on the 4.4 tree gives: ---snip--- helge@move:~/dev/SOPE-4.4/sope-mime/NGMime$ svn log -r {20041212}:HEAD \ NGMimeRFC822DateHeaderFieldParser.m ------------------------------------------------------------------------ ---snap--- Nothing is returned. There where no changes in this branch from the mentioned date. You might get further into the past to check for the last change. Getting a Diff ============== Now that we know the revision of the change we want to apply, we can request a diff: svn diff -r 337:430 \ http://developer.opengroupware.org/SOPE/trunk/sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m This will show the changes made (I selected the last changed revision 337 in SOPE 4.4 as a starting point). Doing a Merge ============= A merge is almost the same like a diff, only it applies the changes to a working copy. So what we are basically doing is generating a patch from 4.5 trunk and apply it to a 4.4 working copy. We can then review the change and commit if wanted. ---snip--- helge@move:~/dev/SOPE-4.4/sope-mime/NGMime$ svn merge -r 337:430 \ http://developer.opengroupware.org/SOPE/trunk/sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m U NGMimeRFC822DateHeaderFieldParser.m helge@move:~/dev/SOPE-4.4/sope-mime/NGMime$ svn stat M NGMimeRFC822DateHeaderFieldParser.m ---snap--- You can commit the change after review (add proper ChangeLog entries etc).