我正在尝试使用SVNKIT java API将分支合并到主干.
它的代码如下:
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();
}
Run Code Online (Sandbox Code Playgroud)
运行此代码会引发以下错误:
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)
Run Code Online (Sandbox Code Playgroud)
我跑这段代码与SVNKIT版本1.7.11和1.8.10,并得到了同样的错误.
上面提到的代码的SVN命令行等效于
svn merge <branchurl> <WC_PATH>
Run Code Online (Sandbox Code Playgroud)
让我们知道是否需要做任何事情来解决这个问题.
首先,检查你是否安装了subclipse,@ flm post在哪里.在Eclipse中,转到Windows - >首选项 - >团队 - > SVN - > DIFF/Merge
选择默认(Sublclipse)
小智 1
注意异常消息:
尚未找到“org.tmatesoft.svn.core.wc2.SvnMerge”命令的运行程序;可能尚未在此 API 中实现。
尝试更换另一个SVN界面客户端`JavaHL(JNI) 1.8.10(r1615264) ,支持svn merge命令!这个对我有用!
| 归档时间: |
|
| 查看次数: |
9438 次 |
| 最近记录: |