`

SVNKit 应用

阅读更多

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

 

分享到:
评论

相关推荐

    svnkit 手册

    * Eclipse 集成开发环境:使用 Eclipse 集成开发环境可以方便地开发和调试 SVNKit 应用程序。 * Maven 依赖关系:SVNKit 依赖于 Maven 依赖关系,以便管理项目依赖项。 SVNKit 结构 第三部分是 SVNKit 结构,...

    SVNKit实例 + jar包 + SVNKit API

    SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端的功能,允许开发者在Java应用程序中集成版本控制系统。SVNKit提供了丰富的API,使得开发者能够执行诸如版本控制、提交、更新、比较、合并等SVN操作。在...

    SVNKit开发的Demo

    这个"SVNKit开发的Demo"是展示如何利用SVNKit在Java应用中实现SVN的基本功能,如检出(Checkout)和文件差异对比(Compare)。通过这个Demo,我们可以深入理解SVNKit的工作原理和API用法。 1. **SVNKit介绍** ...

    svnkit帮助文档API+SVNKit实例+jar包

    SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端功能,允许开发者在Java应用程序中集成版本控制系统。SVNKit提供了丰富的API,使得开发者能够执行常见的SVN操作,如检出、提交、更新、合并等。这个...

    java实现svn,svnkit框架的简单应用

    Java实现SVN,主要借助的是SVNKit框架,这是一款完全用Java编写的Subversion库,使得Java开发者能够轻松地在应用程序中集成版本控制系统Subversion的功能。本文将深入探讨如何使用SVNKit进行基础操作以及日志管理。 ...

    svnkit-1.8.0.zip

    SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统。 这不是一个开源的类库,但你可以免费使用。 通过SVNKit,你可以在SVN上开发出自己的应用

    svnkit插件开发包 支持Java开发svn一键打包

    SVNKit是一款纯Java实现的Subversion(SVN)客户端库,它允许开发者在Java应用程序中直接集成SVN功能,无需依赖任何本地SVN客户端。这个压缩包提供的"svnkit-1.10.6"是SVNKit的一个版本,包含了支持Java开发的SVN...

    svnkit帮助文档API

    SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端功能,允许开发者在Java应用程序中集成版本控制系统。这个“svnkit帮助文档API”是一个离线版的资源,提供了详细的信息来帮助开发者理解和使用SVNKit库。...

    SVNKit1.7.9

    SVNKit 1.7.9 是一个针对Subversion(SVN)的纯Java实现的库,它允许开发者在Java应用程序中直接集成版本控制系统的核心功能。这个版本的SVNKit是一个重要的更新,提供了对Subversion 1.7.x版本协议的支持,同时也...

    SVNKit获取SVN信息

    SVNKit是一个强大的Java库,它为Subversion(SVN)版本控制系统提供了全面的API支持。这个库使得开发者能够在Java应用程序中实现与SVN服务器的交互,包括版本控制操作、仓库浏览、信息获取等功能。本篇文章将深入...

    SVNkit的Jar包 和实例代码

    在实际应用中,SVNkit可以帮助开发团队实现协同开发,通过版本控制确保代码的一致性和可追踪性。同时,它还提供了冲突解决机制,当多个开发者对同一部分代码进行修改时,能够有效地识别和处理冲突。通过结合实例代码...

    svnkit-1.7.11

    SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端的核心功能,允许开发者在Java应用程序中集成版本控制系统。这个“svnkit-1.7.11”压缩包包含了SVNKit的特定版本——1.7.11,这是一个稳定且广泛使用的...

    svnkit-demo.rar

    SVNKit 是一个纯 Java 实现的 SVN 客户端库,允许开发者在 Java 应用程序中集成 SVN 功能,而无需依赖外部的 SVN 客户端工具。 描述中提到的操作包括: 1. **版本号对比**:在 SVN 中,每个文件和目录都有一个唯一...

    svnkit1.8.15

    SVNKit是一个强大的Java库,专门用于与Subversion(SVN)版本...总的来说,SVNKit 1.8.15是一个强大的工具,让Java开发者能够无缝地集成Subversion版本控制功能到他们的应用程序中,从而高效地管理源代码版本和协作。

    SVNKIT Java

    通过阅读这份文档,开发者可以深入理解SVNKit的各种功能并熟练应用到实际项目中。 总之,SVNKit是Java开发者集成Subversion的强大工具,它提供了一整套完善的API,使得在Java应用中实现版本控制变得轻松便捷。通过...

    svnKit java操作svn

    SVNKit是一个用于Java应用程序的Subversion客户端库,允许开发者通过Java代码直接与Subversion交互。 1. **添加依赖** 在项目中引入SVNKit库。如果是Maven项目,可以在`pom.xml`文件中添加如下依赖: ```xml ...

    纯java操作svn--svnkit API

    为了更好地集成SVN功能到Java应用中,SVNKit提供了一套全面且强大的API。本文将详细解析SVNKit API中的几个关键方法,并通过一个具体的示例来展示如何使用这些方法实现常见的SVN操作。 #### SVNKit API简介 SVNKit...

    svnkit的demo

    SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端功能,允许开发者在Java应用程序中集成版本控制系统。SVNKit提供了丰富的API,用于执行常见的SVN操作,如检查、更新、提交、合并和分支等。这个"svnkit的...

    svnkit svn开发所需要的jar包及源码

    SVNKit是一个全面的、纯Java实现的Subversion(SVN)客户端库,它允许开发者在Java应用程序中集成版本控制系统Subversion的功能。Subversion是一种广泛使用的版本控制系统,用于跟踪文件和目录的更改,便于团队协作...

    SVNKit开发手册

    SVNKit是一种Java库,它提供了对Subversion版本控制系统的完整接口,允许开发者在Java应用程序中集成Subversion功能。SVNKit开发手册为想要学习SVN二次开发的程序员提供了全面的指南,涵盖了SVNKit的主要组件与用法...

Global site tag (gtag.js) - Google Analytics