我有两个问题和一些背景.
我正在将Eclipse 1.4.x安装到Eclipse Ganymede中,我想我应该使用SVNKit适配器.我正在使用Subversion 1.4.x附带的Ubuntu 8.04,因为JavaHL适配器需要Subversion 1.5.x,使用像SVNKit这样的纯Java解决方案似乎是一个很好的解决方案.
您使用SVNKit适配器有哪些优缺点?
我找不到任何关于JNA库,SVNKit客户端适配器和SVNKit库实际提供的文档.而且我很想知道我安装的是什么.他们提供什么?
我已经安装了一个带有Windows 10,Eclipse Mars,Subversive Plugin,SVNKit 1.8.11的虚拟机,并试图在我已经在其他几个环境中成功完成的配置中设置一些存储库.SVN服务器是Subversion 1.6.17的Debian 7系统.仅在我设置上述系统后才会出现以下问题:
进一步的调查让我找到了存储库中的一个特定文件,该文件无法加载"无效句柄"错误.它不是一个"奇怪的"路径(不是太长,没有空格或特殊字符),文件本身不包含可疑字符,只是Unix换行符.磁盘上的权限和空间都可以.具有相同属性的其他存储库可以按预期工作.
我发现有类似问题的帖子,但显然没有一个适用于我的帖子.他们告诉我擦拭我的工作区目录(我做了),但我刚刚丢失了所有设置而没有解决问题.在此之后,我调查了Eclipse的程序目录,但没有带来更多的成功.
此外,失败后仍然会锁定".svn\wc.db"文件.因此,在关闭Eclipse之前无法删除存储库.该目录未在eclipse中的任何项目列表/树中列出,如包浏览器,但该目录存在于磁盘上.
相同的存储库X仍然适用于我拥有的每个其他配置.如何重置这些"交易"才能修复此问题?我真的想避免完全重新安装Eclipse甚至Windows.
编辑 我是TortoiseSVN 1.16.16.21511(x64),完全适合SVN服务版本.同样的问题.
我正在尝试使用SVNkit在两个svn URL上运行diff.问题是我在diff.doDiff调用时遇到错误.
org.tmatesoft.svn.core.SVNException:svn:无法为' http://svn.codehaus.org/jruby/trunk/jruby/src/org/jruby/Finalizable.java创建SVNRepository对象'org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:55)at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:40)at org.位于org.tmatesoft.svn.core.wc的org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool.createRepository(DefaultSVNRepositoryPool.java:213)的tmatesoft.svn.core.io.SVNRepositoryFactory.create(SVNRepositoryFactory.java:199). SVNClientManager.createRepository(SVNClientManager.java:242)位于org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:231)org.tmatesoft.svn.core.wc.SVNDiffClient.doDiffURLURL(SVNDiffClient.java: 769)在SVNTest.main的org.tmatesoft.svn.core.wc.SVNDiffClient.doDiff(SVNDiffClient.java:310)(SVNTest.java:30)
我仔细检查了URL(我可以在TortoiseSVN客户端打开它们).任何人都可以帮我知道发生了什么事吗?我已经发布了我在下面运行的代码.
SVNClientManager manager = SVNClientManager.newInstance(SVNWCUtil.createDefaultOptions(false), user, pass);
SVNDiffClient diff = manager.getDiffClient();
//ISVNDiffStatusHandler diffStatus = new ISVNDiffStatusHandler();
try {
SVNURL oldURL = SVNURL.parseURIDecoded(url);
diff.doDiff(SVNURL.parseURIDecoded(url), SVNRevision.create(oldVersion), SVNURL.parseURIDecoded(url), SVNRevision.HEAD, false, false, System.out);
} catch (SVNException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我一直在研究Subversion(SVN)的Java API.似乎有3个可用:
我没有任何这些API的实际经验,但假设上述情况属实,SVNKit看起来是一个明显的赢家.我从经验中知道外表可能是骗人的,所以我正在寻找实际使用过一个或多个这些库的人的反馈.如上所述,SVNKit是失控的赢家,还是有更好的选择.
我想答案将取决于我将如何使用API,并且(可能令人惊讶),答案主要是编写,例如添加,更新和删除文件,创建项目和存储库,分支等.
谢谢!唐
一种新手问题,但我在使用SNVKit时遇到了问题.
我在应用程序中使用SVNKit来提交对文件的更改.我已成功将文件和文件夹添加到工作副本中,但我在将其提交到存储库时遇到问题.
我试图运行的命令是'commit -m"测试添加"/ svnroot/project1 /"但我一直得到"svn:'/ home/user'不是工作副本"
我有一个类似于这样的结构:
如果我尝试提交该文件,我会收到以下消息:"'/ svnroot/project1/grouping1'不受版本控制,不属于提交,但其子代是提交的一部分."
我可能做错了什么?
编辑:修复了目录.
什么更好的SVNKit或JavaHL
日食
颠覆还是Subclipse?
每当我再次安装Eclipse时,这个疑问在一个比另一个更好的方面有差异等等......
对话框显示:
Location information has been specified incorrectly.
svn: E210004: Number is larger than maximum
Keep location anyway?
Run Code Online (Sandbox Code Playgroud)
这刚刚开始发生.我将SVN服务器更新为1.8.它的工作正常,1.7.9.我正在使用svn + ssh.我有SVN Subversive和连接器SVNKit 1.7.9的最新更新(todate).
顺便说一句,这仍然适用于命令行就好了.
我刚刚创建了一个Java项目.我想在SVNKit的帮助下将此项目签到SVN位置.
我使用下面的代码,它将一个文件夹添加到SVN存储库.但它没有.svn在文件夹中创建任何文件夹/Users/test/svnAddDirCheck.
我希望文件被取消,并且我希望将来提交一些更改的文件.没有查看源代码,我该怎么做?我可以在SVN中添加这些文件,还可以直接提交任何更改的文件?
@Test
public void importWholeDir() throws Exception {
try {
DAVRepositoryFactory.setup();
SVNRepositoryFactoryImpl.setup();
FSRepositoryFactory.setup();
String svnUrl = "https://abc.com/svn/repos/projects/test/CREATE2";
File dir = new File("/Users/test/svnAddDirCheck");
SVNURL url = SVNURL.parseURIDecoded(svnUrl);
String userName = "XXXXXXX";
String userPassword = "XXXXXXXXX";
importDirectoryContentToSubversion(svnUrl, dir.getPath(), userName, userPassword, "directory and file added");
} catch (Exception e) {
e.printStackTrace();
}
}
public static SVNCommitInfo importDirectoryContentToSubversion(final String repositoryURL, final String subVersionedDirectory, final String userName, final String hashedPassword, final String commitMessage) throws SVNException {
final SVNClientManager cm …Run Code Online (Sandbox Code Playgroud) 我有Jenkins(2.138.3)在虚拟机上运行.
在同一网络上的另一台PC上,我有一个Visual SVN Server(3.9.2).
间歇性地(可能是25%的时间),结账失败并出现以下错误:
ERROR: Failed to check out https://path/to/my/repository
org.tmatesoft.svn.core.SVNException: svn: E175002: Connection reset
svn: E175002: REPORT request failed on '/my/repository/!svn/vcc/default'
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:96)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:765)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:340)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:910)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:363)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1349)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:847)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.updateInternal(SvnNgAbstractUpdate.java:263)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:115)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:877)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1239)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
at hudson.scm.subversion.CheckoutUpdater$SubversionUpdateTask.perform(CheckoutUpdater.java:133)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:176)
at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:134)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:1041)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:1017)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:990)
at hudson.FilePath.act(FilePath.java:1077)
at hudson.FilePath.act(FilePath.java:1060)
at …Run Code Online (Sandbox Code Playgroud) 可能重复:
开源的svn客户端java库,可用于商业开发
我想从java程序访问SVN.我想要一个SVN的开源java库,SVNkit除外.由于SVNKit已获得许可,因此我无法使用它.我需要一个开源的.