Java 的svn客户端调用示例
1.pom依赖
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.3.5</version>
</dependency>
2.java调用代码
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNLogClient;
import org.tmatesoft.svn.core.wc.SVNRevision;
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
public class SvnTest {
static {
DAVRepositoryFactory.setup();
}
private SVNClientManager manager;
private SVNURL repositoryBaseUrl;
public SvnTest() {
DefaultSVNOptions options = new DefaultSVNOptions();
manager = SVNClientManager.newInstance(options);
// manager = SVNClientManager.newInstance(options,
// "username","passwrod"); //如果需要用户名密码
try {
repositoryBaseUrl = SVNURL
.parseURIDecoded("http://svn.apache.org/repos/asf/logging/log4j/trunk/src/main/java/org/apache/log4j/or"); // 传入svn地址
} catch (SVNException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void test() throws SVNException {
SVNLogClient logClient = manager.getLogClient();
// svn list
DirEntryHandler handler = new DirEntryHandler(); // 在svn
// co时对每个文件目录的处理,实现ISVNDirEntryHandler接口
logClient.doList(repositoryBaseUrl, SVNRevision.HEAD, SVNRevision.HEAD,
false, true, handler); // 列出当前svn地址的目录,对每个文件进行处理
// svn co
UpdateEventHandler svnEventHandler = new UpdateEventHandler(); // svn co时对每个文件的处理
SVNUpdateClient client = manager.getUpdateClient();
client.setIgnoreExternals(true);
client.setEventHandler(svnEventHandler);
File to = new File("e:\\log\\testsvn"); // co出來的文件存放目錄
client.doCheckout(repositoryBaseUrl, to, SVNRevision.HEAD,
SVNRevision.HEAD, SVNDepth.INFINITY, false);
// svn update
client.setIgnoreExternals(true);
client.setEventHandler(svnEventHandler);
client.doUpdate(to, SVNRevision.HEAD, SVNDepth.INFINITY,true, false);
}
public static void main(String[] args) throws SVNException {
SvnTest svntest = new SvnTest();
svntest.test();
}
}
import java.util.ArrayList;
import java.util.List;
import org.tmatesoft.svn.core.ISVNDirEntryHandler;
import org.tmatesoft.svn.core.SVNDirEntry;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNNodeKind;
import com.alibaba.tools.code.SearchConfig;
public class DirEntryHandler implements ISVNDirEntryHandler {
@Override
public void handleDirEntry(SVNDirEntry dirEntry) throws SVNException {
System.out.println(dirEntry.getRelativePath() + "/" + dirEntry.getName());
}
}
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.tmatesoft.svn.core.SVNCancelException;
import org.tmatesoft.svn.core.SVNNodeKind;
import org.tmatesoft.svn.core.wc.ISVNEventHandler;
import org.tmatesoft.svn.core.wc.SVNEvent;
import org.tmatesoft.svn.core.wc.SVNEventAction;
public class UpdateEventHandler implements ISVNEventHandler {
public void handleEvent(SVNEvent event, double progress) {
SVNEventAction action = event.getAction();
SVNNodeKind nodeKind = event.getNodeKind();
if (SVNNodeKind.DIR.equals(nodeKind)) {
// folder
System.out.println(event.getFile().getName());
} else {
// treat as file for all other type
if (action == SVNEventAction.UPDATE_DELETE) {
try {
System.out.println(event.getFile().getName() + "\t" + FileUtils.readFileToString(event.getFile()));
} catch (IOException e) {
}
} else if (action == SVNEventAction.UPDATE_ADD || action == SVNEventAction.UPDATE_UPDATE) {
try {
System.out.println(event.getFile().getName() + "\t" + FileUtils.readFileToString(event.getFile()));
} catch (IOException e) {
}
}
}
}
public void checkCancelled() throws SVNCancelException {
}
}
输出:
/or
jms/jms
jms/MessageRenderer.java/MessageRenderer.java
jms/package.html/package.html
sax/sax
sax/AttributesRenderer.java/AttributesRenderer.java
sax/package.html/package.html
DefaultRenderer.java/DefaultRenderer.java
ObjectRenderer.java/ObjectRenderer.java
RendererMap.java/RendererMap.java
ThreadGroupRenderer.java/ThreadGroupRenderer.java
package.html/package.html
testsvn
testsvn
出处:http://www.linuxidc.com/Linux/2012-06/61781.htm
相关推荐
* Eclipse 集成开发环境:使用 Eclipse 集成开发环境可以方便地开发和调试 SVNKit 应用程序。 * Maven 依赖关系:SVNKit 依赖于 Maven 依赖关系,以便管理项目依赖项。 SVNKit 结构 第三部分是 SVNKit 结构,...
SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端的功能,允许开发者在Java应用程序中集成版本控制系统。SVNKit提供了丰富的API,使得开发者能够执行诸如版本控制、提交、更新、比较、合并等SVN操作。在...
这个"SVNKit开发的Demo"是展示如何利用SVNKit在Java应用中实现SVN的基本功能,如检出(Checkout)和文件差异对比(Compare)。通过这个Demo,我们可以深入理解SVNKit的工作原理和API用法。 1. **SVNKit介绍** ...
SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端功能,允许开发者在Java应用程序中集成版本控制系统。SVNKit提供了丰富的API,使得开发者能够执行常见的SVN操作,如检出、提交、更新、合并等。这个...
Java实现SVN,主要借助的是SVNKit框架,这是一款完全用Java编写的Subversion库,使得Java开发者能够轻松地在应用程序中集成版本控制系统Subversion的功能。本文将深入探讨如何使用SVNKit进行基础操作以及日志管理。 ...
SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统。 这不是一个开源的类库,但你可以免费使用。 通过SVNKit,你可以在SVN上开发出自己的应用
SVNKit是一款纯Java实现的Subversion(SVN)客户端库,它允许开发者在Java应用程序中直接集成SVN功能,无需依赖任何本地SVN客户端。这个压缩包提供的"svnkit-1.10.6"是SVNKit的一个版本,包含了支持Java开发的SVN...
SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端功能,允许开发者在Java应用程序中集成版本控制系统。这个“svnkit帮助文档API”是一个离线版的资源,提供了详细的信息来帮助开发者理解和使用SVNKit库。...
SVNKit 1.7.9 是一个针对Subversion(SVN)的纯Java实现的库,它允许开发者在Java应用程序中直接集成版本控制系统的核心功能。这个版本的SVNKit是一个重要的更新,提供了对Subversion 1.7.x版本协议的支持,同时也...
SVNKit是一个强大的Java库,它为Subversion(SVN)版本控制系统提供了全面的API支持。这个库使得开发者能够在Java应用程序中实现与SVN服务器的交互,包括版本控制操作、仓库浏览、信息获取等功能。本篇文章将深入...
在实际应用中,SVNkit可以帮助开发团队实现协同开发,通过版本控制确保代码的一致性和可追踪性。同时,它还提供了冲突解决机制,当多个开发者对同一部分代码进行修改时,能够有效地识别和处理冲突。通过结合实例代码...
SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端的核心功能,允许开发者在Java应用程序中集成版本控制系统。这个“svnkit-1.7.11”压缩包包含了SVNKit的特定版本——1.7.11,这是一个稳定且广泛使用的...
SVNKit 是一个纯 Java 实现的 SVN 客户端库,允许开发者在 Java 应用程序中集成 SVN 功能,而无需依赖外部的 SVN 客户端工具。 描述中提到的操作包括: 1. **版本号对比**:在 SVN 中,每个文件和目录都有一个唯一...
SVNKit是一个强大的Java库,专门用于与Subversion(SVN)版本...总的来说,SVNKit 1.8.15是一个强大的工具,让Java开发者能够无缝地集成Subversion版本控制功能到他们的应用程序中,从而高效地管理源代码版本和协作。
通过阅读这份文档,开发者可以深入理解SVNKit的各种功能并熟练应用到实际项目中。 总之,SVNKit是Java开发者集成Subversion的强大工具,它提供了一整套完善的API,使得在Java应用中实现版本控制变得轻松便捷。通过...
SVNKit是一个用于Java应用程序的Subversion客户端库,允许开发者通过Java代码直接与Subversion交互。 1. **添加依赖** 在项目中引入SVNKit库。如果是Maven项目,可以在`pom.xml`文件中添加如下依赖: ```xml ...
为了更好地集成SVN功能到Java应用中,SVNKit提供了一套全面且强大的API。本文将详细解析SVNKit API中的几个关键方法,并通过一个具体的示例来展示如何使用这些方法实现常见的SVN操作。 #### SVNKit API简介 SVNKit...
SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端功能,允许开发者在Java应用程序中集成版本控制系统。SVNKit提供了丰富的API,用于执行常见的SVN操作,如检查、更新、提交、合并和分支等。这个"svnkit的...
SVNKit是一个全面的、纯Java实现的Subversion(SVN)客户端库,它允许开发者在Java应用程序中集成版本控制系统Subversion的功能。Subversion是一种广泛使用的版本控制系统,用于跟踪文件和目录的更改,便于团队协作...
SVNKit是一种Java库,它提供了对Subversion版本控制系统的完整接口,允许开发者在Java应用程序中集成Subversion功能。SVNKit开发手册为想要学习SVN二次开发的程序员提供了全面的指南,涵盖了SVNKit的主要组件与用法...