版本控制管理工具
14
Subversion客户端 TortoiseSVN的安装和设置
获取安装文件 从下载; 安装
直接安装,安装完成后会自动集成在资源管理器的右键菜单中; 注意事项:安装时“ASP_HACK”的选择,如果做开
发,安装时一定要选择该项。
行如下命令运行Subversion: svnserve -d -r D:\SVNStore;
可以使用第三方的工具将Subversion添加为Windows的 Service(参见/~mbn/svnservice/); 方式二:将Subversion添加为Apache的Web DAV运行; 这种方式对于Subversion的控制和管理比较方便,但是 配置相对比较麻烦。 建议:个人使用或者对权限控制等要求不高时以独立服 务的方式使用Subversion,当团队开发时使用Web DAV 的方式使用Subversion。
CVS的地位☺。
10
CVS和Subversion的比较版本号管理方式运行方式
传输协议 对目录的版本管理 文件改名 事务性提交
Subversion 所有文件使用同一版本号 多种运行方式: 1.作为操作系统的Demon(如 Window Service)独立运行; 2.作为开源Web服务器Apache的 Web DAV运行; file:///,http://,https://, svn://,svn+ssh:// 对目录也同样进行版本管理
31
2)Import 初始化导入数据
TortoiseSVN常用功能
✓ 在你要导入到SVN数据库的文件夹内右键点击 【TortoiseSVN->Import】,URL of repository 输入相应的SVN数据库地址,点击OK
✓ 完成之后目录没有任何变化,如果没有报错,数 据就已经全部导入到了我们刚才定义的数据库中 。
5
6.1 SubVersion
SubVersion和VSS一样,都是在客户端机器上存放 一套副本文件供用户使用,用户直接修改本地的 副本文件,然后再将其更新到SVN数据库。
当多个文件分批次修改后,这些修改的信息并未 影响SVN数据库,只相当于“预提交”,只有进行 【Commit】操作后,才把这些文件一起“正式提 交”SVN数据库。
本章内容
4
6.1 SubVersion
SubVersion简称SVN,是一个非常强大的文档版本 管理工具,具有和VSS、CVS基本相同的功能。
SVN用于文档版本管理最为合适,因为它的使用方 法非常接近于用户日常使用文件夹来管理文档的 习惯。
不过SVN没有图形化界面,需要使用控制台程序来 运行。
【Export】可以把SVN数据库里的数据导入到指定的目录里。
32
TortoiseSVN常用功能
3)SVN Checkout 将本地目录与SVN数据库对应目录关联起来。并且 更新SVN数据库中的文档到本地目录。
✓ 用户第一次连接SVN数据库时需要使用该功能。
当作为Apache的Web DAV使用时,Subversion 使用Http协议传输,可以直接在Web浏览器中浏 览;
13
Windows平台Subversion 服务器端的安装配置
1. 安装程序从获取; 2. 在Windows平台直接执行安装程序进行安装; 3. 两种安装方式: 方式一:类似CVS,作为独立服务运行,安装完成后运
支持
是
CVS 每个文件有单独的版本号
作为操作系统的Demon(如 Window Service)独立运 行
参见CVSRoot的定义
无 需要删除原文件,重新添 加改名后的文件,改名后 原文件的修改历史丢失。 否
11
Subversion与CVS相比改进的地方
统一的文件版本 目录控制:在Subversion中目录的变更也是受控
16
Subversion的基本概念
Repository(文件仓库) Workcopy(工作复本) Checkout(取出) Commit(提交) Update(更新) Revision(修订版本) Tag(标签) Branch(分支) Conflict(冲突)
17
Subversion的基本操作
TortoiseSVN是配合SVN使用的客户端工具。它的 工作方式和日常使用文件夹保存文档的习惯相同。
TortoiseSVN实现了SVN的全部指令,弥补了SVN缺 少图形化操作界面的不足。
SVN(Subversion)简易入门教程.doc
28
6.2 TortoiseSVN
建立SVN数据库以后,在客户端需要使用SVN Checkout命令检出。
主要功能:记录开发过程的每一次修改,让开发 工作可以随时检查过往的历史和获取正确的版本; 是系统的“成长记录”。
7
为什么要使用版本控制?
在协同开发过程中,确保能够:
保存所有更改的记录,防止改动丢失 能够快速回复到特定版本的状态 能够获取其他成员的更改
在单独开发时,上述的前两点对于自己的开发过 程管理也有莫大的好处。
19
6.1.1 SVN常用指令
1. SVNAdmin create ✓ 根据公司实际需要并按照软件配置管理计划,创
建所需要的SVN文档数据库。比如:SVN开发库和 SVN基线库等。 例如:svnadmin create d:\myrepository
20
6.1.1 SVN常用指令
2. SVNserve ✓ 当用户创建SVN文档数据库以后,应该先启动该数
第6讲 版本控制管理工具(1)
本章目标
学习SVN常用指令 理解SubVersion权限管理所使用的3个文件 了解TortoiseSVN通过不同的图标识别文件的版
本状态 掌握TortoiseSVN菜单的常用功能
2
6.1 SubVersion 6.2 TortoiseSVN
本章内容
3
6.1 SubVersion 6.2 TortoiseSVN
30
TortoiseSVN常用功能
1)Create repository ✓ 该功能代替SubVersion的SVNServe指令来创建
一个SVN数据库。 ✓ SVN提供2种数据库类型用于存放文档。一种是
效率更高的FSFS类型,另一种是较老但更稳定 的Berkeley Database(BDB)作为版本数据库的 后台。
在SVN控制下的每一层目录中都有一个隐藏的文 件夹。
当用户在客户端SVN文件夹中对文档进行变更, 这些变更信息首先存放在这个隐藏文件夹里。只 有当用户执行Commit操作时,才从隐藏文件夹里 读取文档变更的信息,并更新SVN服务器端的数 据。
29
TortoiseSVN使用的不同文件状态的图标
在本地新建文件 将本地文件添加到SVN数据库(未提交) 处于正常状态的文件 处于修改状态的文件 被锁定的文件
的 支持文件复制、重命名 事务性的提交 高效的分支和标记 扩展能力:Subversion提供了一组API,可以供其
他语言直接调用。
12
使用上的主要不同
Subversion的版本号是所有文件共用一个版本号, 每一个个文件的改变都会导致总体版本号发生改 变;
Subversion的分支/标签都以文件夹的方式显示, 而不象CVS只是一个独立的标签;
9
什么是Subversion?
Subversion是一个开源的版本控制系统,拥有 CVS的大部分特征,并在CVS的基础上有更强的 扩展,用来代替 CVS 系统。
Subversion的历史 单词“Subversion”的意义
字面上的意义:Sub + Version,标识Subversion是一个版本控制系统。 英语中有Subversion这个单词,意思是“颠覆” :Subversion要颠覆
8
版本控制的方式
两种典型的方式:Lock-Modify-Unlock方式和 Copy-Modify-Merge方式,分别以Visual Source Safe和CVS为代表
Lock-Modify-Unlock方式:一个文件同一时刻只 能有一个人进行修改,可防止冲突,但不利于合 作开发;
Copy-Modify-Merge方式:可以多人同时修改一 个文件,会有冲突的情况,更强调开发人员的交 流,对于合作开发比较合适;
据库然后再进行其他操作。 ✓ 该命令就是启动SVN数据库的重要指令,有很多参
数可以使用,输入-help指令可以查看其参数列 表。
例如:svnserve –help svnserve–d –r g:\svnrep
//启动g盘上的名为“svnrep”的SVN数据库
21
22
6.1.2 SVN权限管理 1. svnserve.conf:定义了SVN权限管理的策略 2. passwd:定义了访问SVN数据库的用户名和密
SVN使用SVN://或SVN+SSH://协议,也支持 HTTP://协议。本地访问支持file:///。
6
什么是版本控制?
版本控制就是对在软件开发过程中所创建的配置 对象的不同版本进行管理,保证任何时候都能取 到正确的版本以及版本的组合。——摘自贝尔实验室《配
置管理的精髓》
版本控制(Version Control)是软件配置管理中 的重要一环
设置 主要设置: 1. 语言 2. 全局忽略模式 3. 差异查看工具和合并工具 4. 文件叠加图标 5. 右键菜单(外观样式)
15
Subversion相关软件
服务器端:支持多种操作系统 客户端:
Subversion命令行程序 RapidSVN:独立的Windows程序,最新版本0.92,仍处于Beta阶段; TortoiseSVN:和资源管理器完美集成,基于TortoiseCVS的代码开发,
理的策略
✓ auth-access:定义授权用户访问SVN数据库时的权限管 理的策略