5

I am trying to merge branch to trunk using SVNKIT java API.

The code for it is as follows:

String branchURL = "<Branch URL>";

SVNURL branchSVNURL = SVNURL.parseURIDecoded(branchURL);//SVN Branch URL

String WC_PATH= "<Some Path>";//This is the Working copy path which has the Trunk checked out

File svnWorkingCopy = new File(WC_PATH);

SVNDiffClient svnDiffClient;//This is initialized using SVNClientManager

try{
      //doMerge(java.io.File path1, SVNRevision revision1, SVNURL url2, SVNRevision revision2, java.io.File dstPath, SVNDepth depth, boolean useAncestry, boolean force, boolean dryRun, boolean recordOnly) 
      svnDiffClient.doMerge(branchSVNURL, SVNRevision.HEAD,null,svnWorkingCopy,SVNDepth.INFINITY,false, false, false, false);
   }catch(Exception e){
     e.printStackTrace();
   }

Running this code throws the following error:

org.tmatesoft.svn.core.SVNException: svn: E200007: Runner for 'org.tmatesoft.svn.core.wc2.SvnMerge' command have not been found; probably not yet implement in this API.
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.getImplementation(SvnOperationFactory.java:1375)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1224)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
at org.tmatesoft.svn.core.wc.SVNDiffClient.doMerge(SVNDiffClient.java:2389)
at com.test.TestSVN.merge(TestSVN.java:109)
at com.test.TestSVN.main(TestSVN.java:45)

I ran this piece of code with SVNKIT version 1.7.11 and 1.8.10 and got the same error.

SVN command line equivalent for the code mentioned above is

svn merge <branchurl> <WC_PATH>

Let know if anything needs to be done to fix this issue.

Vinod
  • 145
  • 1
  • 1
  • 9

6 Answers6

10

First, check you have subclipse installed, @flm post where. In your Eclipse, go Windows -> Preference -> Team -> SVN -> DIFF/Merge

Select default (Sublclipse)

enter image description here

developer_hatch
  • 15,898
  • 3
  • 42
  • 75
  • 3
    after changing this from "CollabNet Desktop" to Subclipse as you've shown, the "Merge..." option becomes grey out for me – Line Jan 29 '19 at 16:25
3

If the option Select revisions on next page is selected on the second page of the wizard then it works for me without changing any in the preferences.

I use CollabNet Desktop and SVNKit (Pure Java)

enter image description here

Horcrux7
  • 23,758
  • 21
  • 98
  • 156
1

notice exception msg :

Runner for 'org.tmatesoft.svn.core.wc2.SvnMerge' command have not been found; probably not yet implement in this API.

try to change another SVN interface client, `JavaHL(JNI) 1.8.10(r1615264) , supports svn merge command! it works for me!

Lima
  • 1,203
  • 3
  • 22
  • 51
南无增
  • 61
  • 6
1

Are you running Eclipse? Add this software repository http://subclipse.tigris.org/update_1.12.x And install everything.

flm
  • 960
  • 8
  • 14
1

I had the same error in Eclipse when merging with SVNKIT and the CollabNet client, after switching to JavaHL merging work fine.

Note you have to use matching versions of your native subversion vs. subclipe->JavaHL library as decribed in the subclipe wiki. For example svn 1.9.x => subclipe 1.12

0

I had the same error in Jenkins when using the Subversion plugin. When I googled I landed up here.

To fix this in Jenkins I did

Manage Jenkins -> Configure System -> Scroll down to the subversion settings -> select your subversion workspace version

e.g.

enter image description here

robor
  • 2,969
  • 2
  • 31
  • 48