文档章节

SVNKit学习笔记一

宇哥v587
 宇哥v587
发布于 2017/07/19 10:14
字数 1367
阅读 23
收藏 0

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

本文转载自:http://xiangxji.iteye.com/blog/658949

宇哥v587
粉丝 1
博文 47
码字总数 20855
作品 0
南京
程序员
私信 提问
SVNKit 1.7.6 发布,SVN 客户端库

SVNKit 1.7.6 发布,SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统。 这不是一个开源的类库,但你可以免费使用。 该版本改进记...

quanjinzhang
2012/11/13
2.6K
2
Java Subversion Client

fail to install cc or gcc on aix, and installation of subversion by rpm is fail too. so download svnkit export SVNKIT_LIB=svnkit-1.3.7lib jsvn co url......

querychinesesto
2012/03/15
113
0
SVNKit 1.8.4 发布,SVN 的 Java 客户端开发包

SVNKit 1.8.4 发布了,该版本兼容 Subverion 1.8 和 1.7 版本的工作拷贝格式。 SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统...

ddatsh
2014/03/10
2.5K
1
SVNKit 1.3.3 发布

SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统。 该版本主要是为了兼容 Subversion 1.6.11 版本,维持而作了大量稳定性的改进...

红薯
2010/05/05
527
0
SVNKit 1.8 发布,SVN 的 Java 客户端开发包

SVNKit 1.8 发布了,该版本兼容 Subversion 1.8.0,已有 1.7 格式可升级到 1.8 格式。 SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操...

ddatsh
2013/11/28
4K
9

没有更多内容

加载失败,请刷新页面

加载更多

移动开发中的 Web:WebView、WebKit、JSCore、Web 优化、热修复、跨平台、Native、Hybrid……

移动开发领域近年来已经逐渐告别了野蛮生长的时期,进入了相对成熟的时代。而一直以来 Native 和 Web 的争论从未停止,通过开发者孜孜不倦的努力,Web 的效率和 Native 的体验也一直在寻求着...

编辑部的故事
23分钟前
12
0
MySQL8.0.17 - Multi-Valued Indexes 简述

本文主要简单介绍下8.0.17新引入的功能multi-valued index, 顾名思义,索引上对于同一个Primary key, 可以建立多个二级索引项,实际上已经对array类型的基础功能做了支持 (感觉官方未来一定...

阿里云官方博客
今天
11
0
make4.1降级 make-3.81、2错误

在编译 make-3.82 的时候出现如下错误提示 glob/glob.c:xxx: undefined reference to `__alloca'` 修改 /glob/glob.c // #if !defined __alloca && !defined __GNU_LIBRARY__ # ifdef __GNUC......

Domineering
今天
18
0
Rainbond集群的安装和运维的原理

本文将解读Rainbond集群的安装和运维的原理,使用户基本了解Rainbond的安装机制和运维重点,便于用户搭建大型Rainbond集群。 1.Rainbond集群节点概述 1.1 节点分类 属性 类型 说明 manage 管...

好雨云帮
今天
11
0
好程序员大数据学习路线分享UDF函数

1.为什么需要UDF? 1)、因为内部函数没法满足需求。 2)、hive它本身就是一个灵活框架,允许用自定义模块功能,如可以自定义UDF、serde、输入输出等。 2.UDF是什么? UDF:user difine fun...

好程序员官方
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部