`
xiangxji
  • 浏览: 58382 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

svn纯java客户端SVNKit学习整理(2)

    博客分类:
  • java
阅读更多

创建一个Subversion仓库

Subversion仓库类型

到目前为止,一个Subversion仓库的存储可以用Berkley DB数据库(一般叫做Berkley DB 类型)或者普通的文件系统(一般叫做FSFS 类型)来实现。

手动创建一个Subversion仓库

Subversion安装包(你可以在Subversion home site 下载该配置包)包括一个用于创建仓库的svnadmin工具。当你安装Subversion时,你可以通过在命令提示行中输入以下命令行创建一个仓库:

...>svnadmin create C:\path

以上可以为你给定的路径创建一个FSFS类型的仓库。你也可以在命令后端明确的提供仓库的类型:

...>svnadmin create --fs-type bdb C:\path

Subversion仓库的根目录类似如下结构:

 /

 |_conf/

 |_dav/

 |_db/

 |_hooks/

 |_locks/

 |_format

 |_readme.txt

阅读创建和设置仓库的官方操作手册来使用官方Subversion工具

使用SVNKit创建一个Subversion仓库

SVNKit仅提供创建FSFS类型仓库的功能。以下就是使用SVNKit创建一个空仓库的代码片段:

   1 import org.tmatesoft.svn.core.io.SVNRepositoryFactory;

   2 import org.tmatesoft.svn.core.SVNURL;

   3 import org.tmatesoft.svn.core.SVNException;

   4 ...

   5

   6     try {

   7         String tgtPath = "C:/repos/root/path";

   8         SVNURL tgtURL = SVNRepositoryFactory.createLocalRepository( new File( tgtPath ), true , false );

   9     } catch ( SVNException e ) {

  10         //handle exception

  11     }

  12

以上将会在路径C:/repos/root/path创建一个FSFS类型的仓库。方法createLocalRepository第二个参数设为true时,被创建的仓库就可以修改版本属性。如果版本属性没有版本,一旦允许这些文件被改变,那么就存在永远丢失这些文件的风险。要允许版本属性改变,你必须在根目录的hooks目录中放置一个可执行的pre-revprop-change钩子脚本文件。

当尝试改变一个版本属性时,服务器(也就是svnserve)首先唤起pre-revprop-change 钩子。如果这个钩子脚本在hooks目录中不存在,或者脚本返回一个不等于0的值,对版本属性的修改将会被服务器拒绝。

当你使用Subversionsvnadmin工具创建一个新的仓库时,一个新的仓库的hook目录不包含真实的钩子脚本文件,而是钩子脚本模板。这就意味着在你将pre-revprop-change 钩子文件手工放入hooks目录前,你不能够改变版本属性。

由于SVNKit对版本属性的改变时非常直接的,当方法createLocalRepository第二个参数为true时,SVNKithooks目录中放置一个空的可执行的pre-revprop-change 钩子脚本。这个脚本不做任何事情,只是返回0,让请求的改变得以执行。相反,当参数值为false时,钩子脚本不会添加到hooks目录(目录中仅有模板),并且不能改变版本属性。

方法createLocalRepository第三个参数用于控制是否强制创建仓库。也就是,如果这个参数值为true,并且提供的路径已经存在一个仓库,那么SVNKit将会在这个路径上创建一个新的仓库。相反,参数值为false时,已存在的仓库不会删除,并且新的仓库创建将会失败,抛出SVNException

如果一个仓库创建成功了,方法createLocalRepository将返回这个仓库根目录位置的文件URL。你也可以使用SVNAdminClient(属于高级API中的类)来创建一个FSFS类型的仓库。实际上,这个admin客户端类使用SVNRepositoryFactory来做相同的工作。

  1 import org.tmatesoft.svn.core.wc.admin.SVNAdminClient;

   2 import org.tmatesoft.svn.core.SVNURL;

   3 import org.tmatesoft.svn.core.SVNException;

   4 ...

   5     SVNAdminClient adminClient;

   6     ...

   7     try {

   8         String tgtPath = "C:/repos/root/path";

   9         SVNURL tgtURL = adminClient.doCreateRepository( new File( tgtPath ), null , true , false );

  10     } catch ( SVNException e ) {

  11         //handle exception

  12     }

 

访问仓库

有两种方式访问Subversion仓库:

  • 通过网络
  • 访问本机

到目前为止,Subversion支持以下仓库访问方法

 

方法

访问的方法

file:///

直接仓库访问 (在本机磁盘上)

http://

通过 WebDAV 协议访问Subversion 关联的Apache server

https://

http:// 相同, 多了SSL 加密

svn://

通过普通的SVN协议访问svnserve服务器

svn+ssh://

svn://相同, 使用SSH终端

file:/// 访问

当仓库在你本机时,这一协议不需要你为这个仓库设置用户账户来工作。在提交操作中,Subversion仅使用一个用户名,如果没有明确地提供用户名,会话的用户名将会被使用。

svn://, svn+ssh:// 访问

要使用SVN://协议,管理员需要配置 svnserve程序用来验证用户的访问规则和账户。Svn+ssh://协议:首先,客户端通过ssh验证他对服务器主机的权限,终端连接远程服务器,就像是在本机上工作一样。你可以尝试任意一种方法。详细请看Subversion book 这一章

http://, https:// 访问

使用http://协议访问,管理员需要设置一个带有WebDAV协议扩展模块的Apache 服务器。怎样通过http://访问来分享你的仓库(包括账户设置提示),请阅读Subversion book Apache专用章节

 

 

时隔很久,终于整理了下一篇SVNKit的 手册,我需要有更多的时间来做一些有意义的事情……

分享到:
评论

相关推荐

    纯java操作svn--svnkit API

    ### 纯Java操作SVN——SVNKit API详解 #### 概述 在软件开发过程中,版本控制系统如Subversion(SVN)是必不可少的工具之一。为了更好地集成SVN功能到Java应用中,SVNKit提供了一套全面且强大的API。本文将详细...

    svn web client svn客户端

    常见的 SVN 客户端有 TortoiseSVN(Windows)、SmartSVN(跨平台)、SVNKit(Java 库,可用于构建自定义客户端)等。这些客户端支持多种操作系统,包括 Windows、Linux 和 macOS。 - **TortoiseSVN**:在 Windows ...

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

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

    svnKit java操作svn

    ### SVNKit Java操作SVN详解 #### 一、SVN快速入门 SVN(Subversion)是一种广泛使用的版本控制系统,用于管理和追踪多个开发者共享的文件变更。本文将详细介绍如何使用SVNKit进行SVN的基本操作,包括上传、下载、...

    SVNKit获取SVN信息

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

    svn 服务端+客户端+eclipse3.5插件(实测myeclipse8.0能用)+安装教程

    - svnkit.jar、trilead.jar、svnkit-javahl.jar:这些是SVNKit相关的库文件,SVNKit是一个纯Java实现的SVN客户端库,支持JavaHL接口,允许在不依赖本地SVN库的情况下使用SVN。 - JAVAHL-LICENSE:JavaHL是JNI...

    SVNKittest(SVNKit各种操作demo)

    其他SVNKit的操作包括CheckOut,DoCommit,DoDiff,DoImport,DoUpdate,查看上次备注信息(message/log),DisplayFile(查看svn文件属性)DisplayRepositoryTree(查看某路径下的所有文件)

    java操作svn把资源下载到服务器

    Apache的Subversion客户端抽象层(SVNKit)是一个广泛使用的库,它提供了与SVN服务器通信的API。要开始,你需要将SVNKit的JAR文件添加到你的项目类路径中。通常,这些JAR文件可以从Apache官方网站或通过Maven或...

    svn服务器+客户端+详细使用说明

    1. **选择客户端工具**:常见的SVN客户端有TortoiseSVN(Windows)、SmartSVN(跨平台)、SVNKit(Java库,可用于开发自定义客户端)等。 2. **安装客户端软件**:下载并安装对应操作系统的客户端,按照安装向导...

    Subversive SVN Connectors

    1. org.polarion.eclipse.team.svn.connector.svnkit1_10_6.1.0.jar:这是基于SVNKit的连接器,是一个纯Java实现的SVN库,它提供了对SVN协议的全面支持,包括SSL加密通信,以及处理不同SVN版本服务器的能力。...

    SVN客户端软件,非常实用

    SVN客户端有许多实现,如TortoiseSVN(Windows)、SmartSVN(跨平台)、SVNKit(Java库)等。安装过程通常包括下载安装包,按照向导步骤进行,然后设置SVN服务器地址和认证信息。 4. **协作与版本管理**: SVN...

    svnkit-demo.rar

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

    eclipse的svnkit1.9.3

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

    svnkit-1.8.0.zip

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

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

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

    java操作svndemo

    SVNKit是一个完全用Java编写的SVN客户端库,它可以让你在不依赖于外部命令行工具(如`svn`)的情况下,直接在Java代码中处理SVN相关的任务。 首先,你需要在项目中引入SVNKit的依赖。如果你使用的是Maven,可以在...

    java实现svn,svnkit框架的简单应用 - 曾经沧海难为水的博客 - CSDN博客1

    SvnKit是一个纯Java实现的SVN客户端库,它允许开发者在Java应用程序中直接与SVN服务器进行交互,执行如版本控制、提交、更新等操作。 ### SVN简介 Subversion(简称SVN)是一种广泛使用的版本控制系统,用于跟踪...

    java实现svn更新和提交.rar

    SVNKit 是一个纯 Java 的 SVN 客户端库,它提供了与 SVN 服务器交互的全面功能,包括但不限于创建、更新、提交、分支、合并等操作。而 SVNKit-CLI 是 SVNKit 的命令行接口,允许通过 Java 程序调用 SVN 命令行工具。...

    timerTask定时任务使用java代码操作svn

    SVNKit是一个纯Java实现的SVN客户端库,提供了丰富的API,可以实现对SVN的各种操作,如添加、删除、提交、更新等。 - 首先,需要在项目中引入SVNKit依赖,然后创建SVNClientManager实例,这是所有SVN操作的基础。 ...

    svnkit 手册

    SVNKit 是一个基于 Java 语言的 Subversion 客户端库,提供了一个灵活的方式来访问 Subversion 版本控制系统。下面是 SVNKit 手册的详细介绍: SVN 快速入门 SVNKit 手册的第一部分是 SVN 快速入门,旨在帮助...

Global site tag (gtag.js) - Google Analytics