On Tue, Oct 9, 2018 at 2:31 AM Mark Thomas <ma...@apache.org> wrote: > On 09/10/18 05:55, Igal Sapir wrote: > > On Mon, Oct 8, 2018 at 3:04 AM Mark Thomas <ma...@apache.org> wrote: > > > >> On 06/10/18 23:08, Igal Sapir wrote: > >>> I am rather new to SVN, and actually use it mostly via GIT, i.e. `git > svn > >>> rebase` and `git svn dcommit`. > >>> > >>> What is the best way to backport specific patches from trunk to 8.5, > 7.0, > >>> etc.? Patch utility? SVN Merge? GIT cherry-pick (though the git > >> mirrors > >>> have a separate repos which adds some complexity I think) > >>> > >>> I'd appreciate any tips that will point me in the right direction, or > if > >>> anyone can share their workflow. > >> > >> I use svn for backports. I use the following scripts. The first to merge > >> from trunk to 8.5.x, the second to merge from 8.5.x to 7.0.x. I `cd` > >> into the root of the repo for the version I want to merge to and then > >> call the script with the revision of the commit I want to back-port. > >> > >> HTH, > >> > >> Mark > >> > >> mark@study04:~/bin$ cat tc-merge.sh > >> #!/bin/sh > >> svn up > >> svn merge -c $1 https://svn.apache.org/repos/asf/tomcat/trunk > >> > >> mark@study04:~/bin$ cat tc85-merge.sh > >> #!/bin/sh > >> svn up > >> svn merge -c $1 https://svn.apache.org/repos/asf/tomcat/tc8.5.x/trunk > >> > >> > > It helps, thanks, but I don't know if the target file has been changed or > > if I did something wrong, I'm getting a conflict (in git I can see the > > differences and choose resolution, but here I don't know which one to > > pick). Or is it because I waited too long and didn't do this immediately > > after committing the original patch to trunk? > > > > Here's the output from the script: > > > > tc8.5.x]$ ~/bin/svn-merge-tc-trunk-to-85.sh 1842849 > > Updating '.': > > At revision 1843219. > > --- Merging r1842849 into '.': > > C test > > C java > > --- Recording mergeinfo for merge of r1842849 into '.': > > U . > > Summary of conflicts: > > Tree conflicts: 2 > > Searching tree conflict details for 'java' in repository: > > Checking r1842849... done > > Tree conflict on 'java': > > Changes destined for a directory arrived during merge of > > '^/tomcat/trunk/java:1842849'. > > No such file or directory was found in the merge target working copy. > > The item may have been deleted or moved away in the repository's history. > > > > Subversion is not smart enough to resolve this tree conflict > automatically! > > > > Apparently neither am I :s > > That looks like you aren't in the right place in the 8.5.x source tree > to apply the patch. > > Using my scripts I need to be in tc8.5.x/trunk when apply a patch from > trunk to 8.5.x. Essentially, the path in the merge command and the cwd > have to 'line up'. >
Ha! That seems to have worked smoothly from the trunk directory. Thank you, Igal