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

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

    博客分类:
  • java
阅读更多

 

Subversion 是干什么的

前言

如果你是 Subversion 的新用户,我们建议你先去 Subversion home site 获取并阅读 Subversion 的官方文档,你可以从中学习到怎么去配置和使用 Subversion 仓库。我建议新学习的朋友先熟悉Subversion的工作原理和版本机制,然后再学习SVNKit相关的知识。SVNKit中的版本机制和工作原理和Subversion是一致的。

Subversion 是干什么的?

“这是什么,我怎么在我的工作中使用它”,这可能是新学者问自己的第一个问题。简短的说, Subversion 可以被描述为一个版本控制系统,它能从时间上跟踪文件的历史和目录的更改。所有加了版本的文件和目录都隶属于 Subversion 仓库的一个树形结构(就像普通的文件系 统一样)。加了版本的文件和目录拥有版本数据属性。客户端对仓库中的树的更改在一个单独的原子的事务中提交。每一个提交操作都为全部树(包括刚刚提交的新改变的数据和之前没有改变的数据)创建一个新的快照。这样一个快照就叫作修订版 Subversion 仓库的生命从修订版 0 (只有根目录存在修订版 0 )开始。当文件和目录被导入到仓库,仓库就发生了改变,新的修订版就被创建了,每一个成功的提交操作都为修订版加 1


 

Subversion 不会将仓库中文件的每一个修订版的全部内容都保留下来。对于每一个修订版 Subversion 使用智能机制来只存储该修订版被修改过的部分(即该版本与上一个版本之间的不同点)。因此, Subversion 的修订版允许你任何时候将仓库中的文件或者文件夹甚至整个仓库恢复到任何一个之前的版本(只要仓库树中第一修订版被创建了),不会丢失任何一个修订版的任何修改。每个修订版是仓库树的一个永久的快照,如果一个文件或者文件夹被添加到仓库中,那么它将不可能完全的从仓库中移除,因为它总是能在仓库中找到它的以前的被添加进来和被修改时的修订版。即使这种状况它的历史断了,并且从它被删除时的修订版开始它再也不存在于仓库中。

 

使用 Subversion 中心仓库的一种一般方案是在本地计算机上保存一份中心仓库任一子树的拷贝和从本地计算机提交修改结果到中心仓库。换句话说,客户端以某种方式修改来自中心仓库的文件或者目录,然后提交他的修改到中心仓库。本地加了版本信息的文件树就叫做工作拷贝。

 

使用场景:

Subversion 可以供以下使用:

         手动使用 Subversion 来保存他们的文件的变化的终端用户。

编程使用 Subversion 的应用程序。

 

SVNKit 是干什么的?

一般来说应用程序有两种使用 Subversion 的方法

         利用随时可以使用的 Subversion 客户端程序(比如你的计算机上的 Subversion 命令行客户端)。这种应用程序必须调用外部程序。

         利用特殊的客户端库。

 

根据这一分类, SVNKit 是一个纯 Java Subversion 客户端库。

在程序中使用 Subversion SVNKit

有很多在中心存储(例如 Subversion 中的中心仓库)上来保存全部文件的历史数据修改记录的不同的应用程序。 Subversion 能够给这一想法提供非常实用的实现。然而,这些全部的应用程序可以划分为以下两个分类:

         * 第一类是,能非常简单的和工作拷贝的格式进行集成。这一种应用程序利用在本地机器上给目录和文件加上版本信息。

         * 另外一类是,工作拷贝格式不统一。这一类应用程序通过使用不同于文件和目录的项目来工作。跟踪项目的历史修改记录非常重要。但是工作拷贝不是这一类应用程序的实例。

  

上面的第二种应用程序使用 Subversion 中心仓库来存储他们的分等级描述的抽象模型。

SVNKit 是一个在 Java 应用程序中两种类型都使用版本控制的程序化的解决方案。也即, SVNKit 可以用来作为一个使用一般的方法(使用工作拷贝)来进行版本控制的集成的工具,也是一个在仓库访问协议层上和 Subversion 中心仓库进行通信的引擎。

 

SVNKit 提供以下功能:

与Subversion仓库一起工作(例如:访问仓库中的数据)
创建一个本地仓库
在工作拷贝上进行操作
给本地数据加上版本控制
复制已存在的仓库
将仓库内容转化为适于移动设备存储的格式化的数据流
将适于移动设备存储的格式化的数据流加载到仓库
检查本地仓库

 

by xiangxji@gmail.com 2010-05-04 , Revised by xiangxji@gmail.com 2010-05-28 未完待续……

 

 

 

  • 大小: 18.2 KB
2
1
分享到:
评论
7 楼 liang890513 2015-05-15  
如果本地没有安装SVNclient 是不是就不能使用SVNkit进行操作 因为我在项目在window上就可以 部署到linux上以后就不好使了 代码什么的都一样 不知道是不是linux上没有安装SVNclient的原因
6 楼 lonfiy 2014-05-16  
jeremyking 写道
请问如何获得所有本地修改(包括新增)的文件列表?

请问,我用svn://localhost形式访问,总是访问被拒绝,这是什么原因?
5 楼 cjb_666888 2012-05-22  
haohaodigua 写道
请问各位仁兄。
我现在有个麻烦事儿谁能帮我出点主意。
client ---> server(use svnkit) ---> svnserver

请问我在client端修改了本地的文件后,怎么样能在远程的server端利用svnkit的commit方法提交到远程的svnserver???

现在考虑,本地的文件直接以字节流的方式传输到server端。 然后server端进行commit, 问题有以下。

1、 svnkit是否有支持流提交的方法。
2、 client 端需要将本地的.svn文件也一并提交过去用于svnserver对working-copy的验证。怎么传呢? 什么方式最好??

希望高人点评。 拜托!
也可以发我邮箱 haohaodigua@163.com
谢谢~~~~

请问下,SVN*Client与ISVNEditor的区别?(如,SVNCommitClient与用SVNRepository.getCommitEditor,进行增、删、改操作)
4 楼 haohaodigua 2012-02-06  
请问各位仁兄。
我现在有个麻烦事儿谁能帮我出点主意。
client ---> server(use svnkit) ---> svnserver

请问我在client端修改了本地的文件后,怎么样能在远程的server端利用svnkit的commit方法提交到远程的svnserver???

现在考虑,本地的文件直接以字节流的方式传输到server端。 然后server端进行commit, 问题有以下。

1、 svnkit是否有支持流提交的方法。
2、 client 端需要将本地的.svn文件也一并提交过去用于svnserver对working-copy的验证。怎么传呢? 什么方式最好??

希望高人点评。 拜托!
也可以发我邮箱 haohaodigua@163.com
谢谢~~~~
3 楼 haohaodigua 2012-02-06  
jeremyking 写道
请问如何获得所有本地修改(包括新增)的文件列表?


SVNStatusClient  doStatus 获取本地所有文件状态。

2 楼 jeremyking 2011-11-30  
请问如何获得所有本地修改(包括新增)的文件列表?
1 楼 bbsskyhorse 2010-07-07  
楼主:
    谢谢你的指导!
    我本来的疑惑就是,单位里的一个项目,需要svnkit的java代码来做svn库,里面的有些文件可能会很大,比如10G左右的,被删除的时候,如果不删除本身,这样很占硬盘空间,留下了10G的垃圾内容,很无奈!
    看了你的这篇文章,感觉不太可能完成真正的删除了,看来只有调查下其他的办法解决了,感觉这是个subversion里的一个不太理性的地方!

相关推荐

    纯java操作svn--svnkit API

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

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

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

    svn web client svn客户端

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

    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...

    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版本服务器的能力。...

    SVNKittest(SVNKit各种操作demo)

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

    SVN客户端软件,非常实用

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

    svnkit-demo.rar

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

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

    SvnKit是一个纯Java实现的SVN客户端库,它允许开发者在Java应用程序中直接与SVN服务器进行交互,执行如版本控制、提交、更新等操作。 ### SVN简介 Subversion(简称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上开发出自己的应用

    java实现svn更新和提交.rar

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

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

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

    java操作svndemo

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

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

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

    SVNKit实例 + jar包 + SVNKit API

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

Global site tag (gtag.js) - Google Analytics