Subversion快速入门教程(SVN vs CVS)
文中提及的Subversion动画教程并不可用,如有任何Subversion相关问题可以一起探讨。

Subversion是新一代的版本控制工具,不仅仅应用于程序源代码管理,也可以广泛应用于其他需要协作管理数据的工作,例如有人使用Subversion来合作写乐谱,美工用来共同作图,文档写作人员一起写一篇大作。
对于希望学习Subversion的新手,可以看看这一篇最快速的Subversion入门教程。

如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。

本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。
软件下载
服务器和客户端安装
建立版本库(Repository)
配置用户和权限
运行独立服务器
初始化导入
基本客户端操作

1,软件下载
下载Subversion服务器程序。 到官方网站的下载二进制安装文件,来到二进制包下载部分 ,找到 Windows NT, 2000, XP and 2003部分,然后选择"this directory",这样我们可以看到许多下载的内容,目前可以下栽 svn-1.2.3-setup.exe。
下载Subversion的Windows客户端TortoiseSVN。 TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
官方网站是TortoiseSVN,下载方式和前面的svn服务器类似,在Download页面的我们选择Official version for Win2k/XP or higher的版本,然后在sourceforge的下载页面选择目前的最高稳定版本的安装文件TortoiseSVN-1.2.4.4479-svn-1.2.3.msi。

2,服务器和客户端安装
服务器安装,直接运行svn-1.2.3-setup.exe,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。
安装TortoiseSVN,同样直接运行TortoiseSVN-1.2.4.4479-svn-1.2.3.msi
按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。

3,建立版本库(Repository)
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create E:\svndemo\repository
就会在目录E:\svndemo\repository下创建一个版本库。
我们也可以使用TortoiseSVN图形化的完成这一步:
在目录E:\svndemo\repository下"右键->TortoiseSVN->Create Repository here…“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。
4,配置用户和权限
来到E:\svndemo\repository\conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
5,运行独立服务器
在任意目录下运行:
svnserve -d -r E:\svndemo\repository 我们的服务器程序就已经启动了。
6,初始化导入
来到我们想要导入的项目根目录,在这个例子里是E:\svndemo\initproject,目录下有一个readme.txt文件:
右键->TortoiseSVN->Import…
URL of repository输入“svn://localhost/trunk”
ok 完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。
7,基本客户端操作

取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是E:\svndemo\wc1,运行右键->Checkout,在URL of repository中输入svn://localhost/trunk,这样我们就得到了一份工作拷贝。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,然后右键->Commit…,这样我们就把修改提交到了版本库,我们可以运行。
察看所作的修改:
readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。
最后,所有的内容都已经录制为动画文件,大家可以参考。
关于本教程大家有什么意见,可以在这里回复。

CVS与SVN性能的比较
今天看到这个测试结果,效果惊人阿。
Action                                                      CVS               SVN
Check out small file set         1 m 17.32 s         26.96 s
Check out large file set          7 m 16.92 s  5m 35.01 s
Tag small file set                     1m 29.30 s            0.88 s
Tag large file set                   18 m 52.45 s            0.86 s
Update small file set                      44.46 s            4.91 s
Update large file set               8 m 53.39 s          38.62 s
Create branch (small set)     1 m 27.99 s            0.80 s
Create branch (large set)      21 m 2.93 s            0.69 s

引用内容
As it is known, before getting acquainted with SVN, our company had worked with CVS for long enough. We know CVS from both user and developer points of view. Approximately at the same level we had got acquainted with SVN, and undoubtedly we have an opinion to share with you concerning the question "what system is better?".

It is worth noting, that the work on the creation of the IDE plug-in for SVN had started at numerous user requests. However, our own motivation had also played a considerable role in starting work with SVN, since publications appeared that SVN is a substitute for CVS, which eliminates all its problems and shortcomings. Unfortunately, to our point of view, SVN is not a substitute for CVS and all the more it does not eliminate its shortcomings. Moreover, it even yields to CVS. Figuratively, CVS and SVN can be compared as C ++ and Java. Obviously, both CVS and SVN are more powerful than SourceSafe, as well as C ++ and Java are more powerful than Basic. CVS represents almost all functionalities of a source control system, though not always in a convenient and apparent manner. SVN, patching and expanding some CVS functionalities, simply does not contain some important functions. For example, the creation of tags and branches is dubious, and no means are provided to notify others that you are editing a file. It is similar to what the developers of Java have done: they have decided for you that pointers are not necessary, and there is no need in operator overloading etc.

Thus, as for now SVN cannot be considered a CVS substitute. It is a different system, similar to CVS. It has unique functions, which can serve as a reason for its usage. These functions make it more suitable for some development environments, for example for PowerBuilder. Below you can find comparative advantages and disadvantages of these systems. It is assumed that in relation to the remaining items the systems are similar. On the green background "advantages" of a system in relation to its competitor are presented, and "disadvantages" are presented on the pink ground. If you are facing the problem of choice, it is recommended to try both systems, paying special attention to the items below. You may also look to some discussion between Subversion developers and Pushok staff.

Why does this project exist?
To take over the CVS user base. Specifically, we're writing a new version control system that is very similar to CVS, but fixes many things that are broken. See our front page.

Is Subversion proprietary? I heard that it belongs to CollabNet.
No, Subversion is open source / free software. CollabNet pays the salaries of several full-time developers, and holds the copyright on the code, but that copyright is an Apache/BSD-style license which is fully compliant with the Debian Free Software Guidelines. In other words, you are free to download, modify, and redistribute Subversion as you please; no permission from CollabNet or anyone else is required.

What is Subversion's client/server interoperability policy?
The client and server are designed to work as long as they aren't more than one major release version apart. For example, any 1.X client will work with a 1.Y server. However, if the client and server versions don't match, certain features may not be available.

转载于:https://www.cnblogs.com/itelite/archive/2007/09/14/893476.html

Subversion快速入门教程(SVN)相关推荐

  1. Subversion快速入门教程

    2019独角兽企业重金招聘Python工程师标准>>> 如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的 ...

  2. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

  3. ​HealthKit开发快速入门教程大学霸内部教程

    ​HealthKit开发快速入门教程大学霸内部教程 ​ ​ 国内第一本HealthKit专向教程.本教程详细讲解iOS中,如何使用HealthKit框架开发健康应用.最后,本教程结合HealthKit ...

  4. Apple Watch开发快速入门教程

     Apple Watch开发快速入门教程  试读下载地址:http://pan.baidu.com/s/1eQ8JdR0 介绍:苹果为Watch提供全新的开发框架WatchKit.本教程是国内第一本A ...

  5. 指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程

    指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程 ​1.4.2  指示灯组 指示灯组的放大图如图1.5所示. 图1.5  指示灯组 各个指示灯对应的功能如下: q  RX:对应于0号端口 ...

  6. 游戏控制杆OUYA游戏开发快速入门教程

    游戏控制杆OUYA游戏开发快速入门教程 1.2.2  游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4  游戏控制杆各个角度的 ...

  7. Arduino Yun的主要部件介绍选自Arduino Yun快速入门教程

    Arduino Yun的主要部件介绍 1.4.1  主要部件 Yun的主要部件如图1.4所示. 图1.4  Arduino Yun的主要部件 在Yun小小的板子上集成了两颗处理器.一个是ATmega3 ...

  8. 认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

    认识AndEngine什么是AndEngine 随着Android手机.平板的盛行,Android下的游戏也不断的变得火热.而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏.虽说游戏开发的引擎较多 ...

  9. OUYA游戏开发快速入门教程1.2OUYA的硬件规格

    OUYA游戏开发快速入门教程1.2OUYA的硬件规格 从官网上购买回来的OUYA产品,包含游戏主机.游戏控制杆.说明书.电源线.HDMI线.电源线和电池,如图1-2所示.本节就来简要介绍下,游戏主机和 ...

最新文章

  1. 节约里程法java代码_患者,男,70岁,有多年排尿困难,呈淋漓状,近2年来双侧腹股沟区出现半年圆形肿块,站立时明显,平卧后消失,体检时压迫内环肿块仍出现,诊断为...
  2. 微信公众号开发--.Net Core实现微信消息加解密
  3. 10 款最新的 jQuery 内容滑块插件
  4. 字体选择_Word文档中的字体批量选择与更改,查找替换功能必杀技
  5. 系统学习 TypeScript(二)——开发流程和语法规则
  6. matplotlib 可视化细节,丰富的可选参数
  7. ECharts力导向布局图增加滚动条
  8. 八大排序算法—源代码(c语言)
  9. python中if else语句用法_Python条件语句详解:if、else、switch都有了
  10. 数据库MySQL详解(入门学习)
  11. 台湾java程序员工资水平_女程序员在台湾的工资比大陆低吗?
  12. h3cmsr830series说明书_H3C MSR830路由器怎么设置?
  13. python基础:面向对象的应用--搬家具。
  14. 2023年网络安全HW攻防技术总结(珍藏版)
  15. photoshop图层解锁及不能解锁的原因
  16. 传大疆北美裁员1/3,离职高管透露内部斗争严重
  17. TreeMap、TreeSet简介
  18. Win10 22H2 19045.2670系统原版镜像
  19. 手机上的磁性传感技术
  20. java - 解决idea导入项目,中文出现乱码的问题

热门文章

  1. 2019全球程序员薪酬报告:软件开发比机器学习抢手!40岁后收入下滑
  2. PRNet:人脸3D重建与密集对齐
  3. java sqlexec_java 执行Sql文件
  4. mysql数据库应用的权限层级_涂抹MySQL--第5章 MySQL数据库中的权限体系 - 5.3权限级别(1)...
  5. 高效神器!小目标检测迎来曙光!SSPNet金字塔网络!川大出品
  6. 机器学习(十五)隐马尔科夫模型-未完待续
  7. p20怎么用android auto,奔驰23P/P20驾驶辅助系统到底有哪些功能,怎么使用?
  8. android 时间差 秒_Android 根据两个时间戳计算时间差(亲测可用)
  9. 系统无法执行指定的程序。_使用Rust编写操作系统(一):独立式可执行程序
  10. Python学习入门3:编程零基础应当如何开始学习Python?