Model:

package com.wjy.model;

public class RepositoryInfo {
public static String storeUrl="http://10.13.30.22/svn/SVNRepository/Checked/";
public static String buffUrl="http://10.13.30.22/svn/SVNRepository/UnChecked/";
public static String sysInfoUrl="http://10.13.30.22/svn/SVNRepository/Log/";
}

Option:

package com.wjy.modeloption;

import java.awt.List;
import java.io.File; 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.svn.SVNRepositoryFactoryImpl;
import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions;
import org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.ReposInfo;
import org.tmatesoft.svn.core.wc.ISVNOptions;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNCommitClient;
import org.tmatesoft.svn.core.wc.SVNCopyClient;
import org.tmatesoft.svn.core.wc.SVNCopySource;
import org.tmatesoft.svn.core.wc.SVNRevision;
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
import org.tmatesoft.svn.core.wc.SVNWCUtil; import com.wjy.model.RepositoryInfo; public class ModelOption {
private SVNClientManager ourClientManager;
private SVNURL repositoryOptUrl;
private String userName;
private String passwd;
public ModelOption(String userName,String passwd){
this.userName=userName;
this.passwd=passwd;
}
private void setUpSVNClient(String userName,String passwd){
SVNRepositoryFactoryImpl.setup();
ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
ourClientManager = SVNClientManager.newInstance(
(DefaultSVNOptions) options, userName, passwd);
}
/**
* 上传模型
* @param dirPath
*/
public void uploadMoel(String dirPath,String modelName){
setUpSVNClient(userName,passwd);
File impDir = new File(dirPath);
SVNCommitClient commitClient = ourClientManager.getCommitClient();
commitClient.setIgnoreExternals(false);
try {
repositoryOptUrl=SVNURL.parseURIEncoded(RepositoryInfo.buffUrl+modelName);
commitClient.doImport(impDir,
repositoryOptUrl, "import operation!", null, true, true,
SVNDepth.INFINITY);
} catch (SVNException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 下载模型
*/
public void downloadModel(String downloadModelName,String dirPath){
setUpSVNClient(userName,passwd);
File outDir=new File(dirPath+"/"+downloadModelName);
//outDir.mkdirs();//创建目录
SVNUpdateClient updateClient=ourClientManager.getUpdateClient();
updateClient.setIgnoreExternals(false); try {
repositoryOptUrl=SVNURL.parseURIEncoded(RepositoryInfo.storeUrl+downloadModelName);
updateClient.doExport(repositoryOptUrl, outDir, SVNRevision.HEAD, SVNRevision.HEAD, "downloadModel",true,true);
} catch (SVNException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 删除模型
*/
public void deleteModel(String deleteModelName){
setUpSVNClient(userName,passwd);
SVNCommitClient commitClient=ourClientManager.getCommitClient();
commitClient.setIgnoreExternals(false); try {
repositoryOptUrl=SVNURL.parseURIEncoded(RepositoryInfo.storeUrl+deleteModelName);
SVNURL deleteUrls[]=new SVNURL[];
deleteUrls[]=repositoryOptUrl;
commitClient.doDelete(deleteUrls, "delete model");
} catch (SVNException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } /**
* 移动模型
*/
public void moveModel(String modelName){
setUpSVNClient(userName,passwd);
SVNCopyClient copyClient=ourClientManager.getCopyClient();
copyClient.setIgnoreExternals(false); try {
repositoryOptUrl=SVNURL.parseURIEncoded(RepositoryInfo.buffUrl+modelName);
SVNURL destUrl=SVNURL.parseURIEncoded(RepositoryInfo.storeUrl+modelName);
SVNCopySource[] copySources = new SVNCopySource[];
copySources[] = new SVNCopySource(SVNRevision.HEAD, SVNRevision.HEAD, repositoryOptUrl); copyClient.doCopy(copySources, destUrl, true, false, false, "move", null);
} catch (SVNException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}

测试:

package com.wjy.test;

import com.wjy.modeloption.ModelOption;

public class MainTest {
public static void main(String args[]){
ModelOption modelOption=new ModelOption("harry", "harryssecret"); // modelOption.uploadMoel("E://LoveEyes","ModelSB"); // modelOption.moveModel("ModelSB"); // modelOption.downloadModel("ModelSB","E://download/"); // modelOption.deleteModel("ModelSB");
}
}

SVNKIT操作SVN版本库的完整例子的更多相关文章

  1. SVN版本库备份和恢复

    1.版本库备份 1.1.svnadmin dump方式备份 此方法借助的是Subversion官网推荐的svnadmin dump备份方式,它的优点是比较灵活,既可以进行全量备份又可以进行增量备份,并 ...

  2. TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库

    TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库 SVN客户端程序:TortoiseSVN SVN服务器程序:VisualSVN-Server ######## ...

  3. SVN版本库(访问权限)配置实例笔记

    http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. ...

  4. 工作随笔——使用svnsync实时备份SVN版本库

    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...

  5. 用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器

    如用svnsync 同步备份两台机器的svn .(就以linux服务器到windows服务器为例子) 要同步的项目名称:source_svn svn 版本库1 .4 以上 源目录:           ...

  6. Linux 搭建svn版本库

    一.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端 如果后面执行“svnadmin create /usr/local/svn/sunny”提示 ...

  7. 使用 Python 操作 Git 版本库 - GitPython

    GitPython 是一个用于操作 Git 版本库的 python 包, 它提供了一系列的对象模型(库 - Repo.树 - Tree.提交 - Commit等) 用于操作版本库中的相应对象. 版本库 ...

  8. linux服务器上创建svn版本库

    1. 创建存放各个svn版本库的目录svnrepos(自己定义路径) -bash: cd /usr/local/apache/htdocs/ -bash: mkdir svnrepos 2. 假设我要 ...

  9. 使用svnsync实时备份SVN版本库

    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...

随机推荐

  1. Java 异常分类

    1.java异常层次结构: 粉红色的是已检查异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.已检查异常必须在编译时被 ...

  2. 80 多个 Linux 系统管理员必备的监控工具

    随着互联网行业的不断发展,各种监控工具多得不可胜数.这里列出网上最全的监控工具.让你可以拥有超过80种方式来管理你的机器.在本文中,我们主要包括以下方面: 命令行工具 网络相关内容 系统相关的监控工具 ...

  3. CentOS6.4 安装 Oracle11g

    1.硬件要求检查: 1.1 内存要求: 内存大于1G(使用虚拟机安装时内存要稍微大一些,否则安装检查不通过) #cat /proc/meminfo //查看内存大小 1.2 交换分区要求: 交换分区是 ...

  4. javascript 精典案例分析一览

    1.[优雅代码]深入浅出 妙用Javascript中apply.call.bind http://www.cnblogs.com/coco1s/p/4833199.html 2.1.0.1 ionic ...

  5. smartforms客制页格式

    smartforms需要打印非A4纸时需要手动创建页格式:创建事务代码:spad, 操作的时候需要 把所有步骤都做一遍方可正常打印,不然只能停留在预览界面无法打印.

  6. 基础知识(10)- 部署应用程序和applet

    10.1 JAR文件  10.1.1 清单文件  10.1.2 可运行JAR文件  10.1.3 资源  10.1.4 密封 10.2 Java Web Start  10.2.1 沙箱  10.2. ...

  7. 基于visual Studio2013解决面试题之0206hash表实现

     题目

  8. mysql基础:mysql列类型--时间和日期

    mysql列类型--整型 http://blog.csdn.net/jk110333/article/details/9342283 mysql列类型--字符串http://blog.csdn.net ...

  9. SQL server语句练习

    相关表: <span style="white-space:pre">create table DEPT ( <span style="white-sp ...

  10. session对象和applicatione对象

    ASP.NET 的常用对象有:response对象.request对象.application对象.server对象.session对象.下面主要讨论session对象和cookie对象. sessi ...