软件配置管理工具SVN配置和使用说明
战立章
20xx年6月
目录
第I 条
1.1
1.2 第一章 SVN的安装和使用说明 ............................................................................................ 1 SVN(Subversion)简介 .......................................................................................................... 1 服务器SVN(Subversion)的安装和配置 ............................................................................. 2
1.2.1 安装指南 ......................................................................................................................... 3
1.2.2 服务器的设置 ................................................................................................................. 3
1.3 客户端TortoiseSVN的安装和配置 .......................................................................................... 5
1.3.1 安装指南 ......................................................................................................................... 5
1.3.2 TortoiseSVN使用说明 ................................................................................................... 5
第II 条 参考文献 ...................................................................................................................................11
配置管理工具SVN配置和使用说明
第I 条 第一章 SVN的安装和使用说明
1.1 SVN(Subversion)简介
在开源领域,并行版本控制(CVS)一直是版本控制的选择。CVS(Concurrent Versions System)本身是一个自由的软件,它对用户的非限制性和对网络操作的支持—可以允许大量的分散在不同地域的程序员共享他们的工作(特性)成果,非常符合开源软件领域合作的精神。但是像许多其他工具一样,伴随着软件技术的革新,CVS开始露出了衰老的痕迹。所以,设计者在继承CVS优秀特性的基础上设计了Subversion,并把它作为CVS新的继承者。与CVS类似,程序员依然可以使用Subversion构建一个开源软件系统的版本控制过程,但设计者在设计Subversion过程中,努力弥补了CVS的一些明显的缺陷。下面将通过与CVS对比,简单的介绍Subversion为版本控制领域带来的一些新的特性。
1. 版本化的目录
CVS只记录单个文件的历史,但是Subversion实现了一个可以跟踪目录树更改的虚拟版本化文件系统,记录文件和目录的所有版本。
2. 真实的版本历史
CVS只记录单个文件的历史,所以CVS对那些可能发生在文件上,但会影响所在目录内容的操作(CVS并不跟踪记录目录的变更,见特性1说明)并不支持。因此,例如,复制和重命名,这些可能改变工作目录内容的操作CVS并不支持。而且在CVS中,如果一个文件搬到另一个地方或者改名,版本号将重新编。同时CVS也不支持在工作目录下用一个内容完全不同的文件来覆盖目录下的同名文件而不继承原来文件的版本历史。而在Subversion中,可以对工作目录下的文件或者目录进行拷贝和改名操作,还可以进行添加和删除操作,而且所有的新加的文件都从一个新的、干净的版本开始。
3. 原子提交
在Subversion中,一系列的修改要么全部提交到版本库,要么一个也不提交,这样可以帮助用户构建一个提交修改的逻辑块,防止部分修改添加到版本库。
4. 版本化的元数据
在Subversion版本控制系统中,每一个文件或目录都有自己一套完整的属性键和它们的值,可以建立并存储任何键/值对,并且属性是随着时间流逝逐渐纳入版本控制的。
1
配置管理工具SVN配置和使用说明
5. 可选的网络层
Subversion有一个抽象版本库存取概念,即对于版本库的存取Subversion没有设置定性的机制,所以人们可以去利用许多现有的技术去实现的网络机制。Subversion可以作为一个扩展块嵌入到Apache 1HTTP服务器中,这个为Subversion提供了非常先进的稳定性和协同工作能力,除此之外还提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及文件库浏览等等。除此以外,Subversion本身还有一个轻型的、单独的服务器,使用的是自定义的通信协议,可以很容易的通过SSH2(Secure Shell)以tannel的方式使用来实现网络机制。
6. 一致的数据操作
Subversion记录文件是建立在二进制区别算法的基础上的,对于文本(可读)和二进制文件(不可读)使用一致的操作方式,两种类型的文件都压缩存放在版本库中,区别信息是在网上双向传递的,既向版本库发送区别信息,也在用户端现实区别信息。
7. 有效地分支和标签
在Subversion版本控制系统中,分支和标签代价不与工程的大小成正比,Subversion建立分支和标签时,使用了一种类似于(与)硬连接 3的机制,因而这类操作通常只会花费很少并且相对固定的时间。
8. 可修改性
Subversion由一系列共享的C库实现,具有良好的API,这使得Subversion非常容易维护[1]。
1.2 服务器SVN(Subversion)的安装和配置
版本:svn-1.4.6-setup.exe。
安装环境:Windows XP Service Pack 2 Pentium(R) 4 CPU 2.00GHz
512MB内存
下载网址:
1 Apache,一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
2 SSH介绍见。 3 硬连接就像一个文件有多个文件名, 软连接就是产生一个新文件,这个文件指向另一个文件的位置, 硬连接必须在同一文件系统中,而软连接可以跨文件系统。
2
配置管理工具SVN配置和使用说明
1.2.1 安装指南
1. 下载Subversion服务器端软件。在下载页面中选择相应的版本,点击其对应的
连接进入即可下载。本例安装版本是svn-1.4.6-setup.exe。
2. 下载后,运行svn-1.4.6-setup.exe安装,默认安装在C:\Program
Files\Subversion。
1.2.2 服务器的设置
1. 建立版本库
运行Subversion服务器前首先要建立一个版本库(Repository), 它是服务器上存放数据的数据库。在命令模式下(win+R后,输入cmd),输入#〉svnadmin create 版本库的目录命令,例如,输入#〉svnadmin create D:\repository,即可在D盘下创建一个版本库repository(版本库名任意)。然后打开repository文件夹后,我们会发现在该目录下生成了若干文件和文件夹,dav目录是提供给Apache与mod、dav、svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置 hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件, 里面只放了一个整数,表示当前文件库配置的版本号。
2. 配置用户和权限
1) 以记事本方式打开D:\repository\conf\目录下的svnserve.conf文件,在其中找
到以下几句话:
[general]
# anon-access=read
# anth-access=write
# password –db=passwd
去掉每行开头的#和空格 4,上面的(其中)password –db=passwd是指定身
份验证的文件名,即passwd文件,其中保存了用户名和密码。
anon-access=read是指匿名用户只具有只读权限,不能写入,要想写入就必须
以用户的身份登陆,输入用户名和密码。
2) 以记事本的方式打开D:\repository\conf\目录下的passwd。文件,在文件中找 4 注意:不要在用户名前留有空格,不然在后面进行的导入操作时系统会报错
3
配置管理工具SVN配置和使用说明
到# harry=harryssecret和# sally=sallyssecret,去掉#和后面的空格。这里定
义了两个用户harry和sally,密码分别是harryssecret和 sallyssecret。同样我
们也可以根据实际需要添加用户名和密码,如admin=admin11,等号前面即为
用户名:admin,后面为用户的密码:admin11。
3. 运行服务器
1) 方法一:在命令模式下:点击win+R后,输入cmd,然后输入命令,#>svnserver
-d –r 版本库目录,例如,#>svnserve –d –r d:\repositary,服务器即可启动。
-d为daemn简写,-r为root的简写。可以打开任务管理器,察看svnserve.exe
是否在进程中,注意,该方式每次开机后都要重新SVN服务器。
2) 方法二:添加为系统服务:点击win+R后,输入cmd,然后输入命令,
#> sc create svnservice binpath= “\”C:\Program
Files\Subversion\bin\svnserve.exe\” --service -r d:\repositary”displayname=
“SVNservice” depend= Tcpip start= auto,其中d:\repositary是版本库的目
录。在DOS下输入该命令时,一定要注意以下几点:首先,如果路径中包含空
格,一定要在路径的开头和结尾加上\”,否则,系统就会报错。第二,sc 命令
对于命令中的参数选项的格式要求非常怪异,必须在各选项的等号前面不能加
空格,而等号后面必须加空格。例如,depend= Tcpip不能写成depend =Tcpip、
depend=Tcpip或depend = Tcpip,否则系统同样会报错。当输入以上命令后,
如果系统在控制台输出[SC] CreateService SUCCESS的字样,则表示该系统服
务svnservice添加成功。这时,我们可以点击“我的电脑—〉管理—〉服务和
应用程序—〉服务”,然后就会在就在窗口的右面显示出系统的所有后台服务,
拖动鼠标,依次查看,我们可以找到刚才添加的svnservice服务,如果发现该
服务并没有启动可以选中双击也可以在命令窗口下输入#>net start svnservice
这样等服务器每次开机后,该服务都会自动运行。
4. 开放服务器端口(针对远程服务器的设置,本地服务器可以跳过)
SVN(Subversion)默认端口是3690,我们需要在防火墙上开放这个端口,依次点
击“控制面板—〉Windows防火墙—〉例外—〉添加端口”,然后填写名称和端口号,名称可以任意,一般要求有一定的意义,如名称填写SVN,端口号填3690。
4
配置管理工具SVN配置和使用说明
1.3 客户端TortoiseSVN的安装和配置
版本:TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi
LanguagePack-1.4.8 .12137-win32-zh_CN.exe(可选)
安装环境:Windows XP Service Pack 2 Pentium(R) 4 CPU 2.00GHz 512MB内存
下载网址:http://tortoisesvn.net/downloads
1.3.1 安装指南
1. 下载Subversion的windows客户端程序TortoiseSVN和中文语言包,目前最新
的版本是TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi和
LanguagePack-1.4.8 .12137-win32-zh_CN.exe。该文档介绍用的是
TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi。注意:SVN的客户端的版本可
以高于SVN服务器端的版本,但不能低于SVN服务器的版本,不然服务器端
的版本库将文件升级后,客户端将不能识别。
2. 下载后,先运行TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi,安装程序完成
后,提示重启计算机选择“否”,然后运行中文语言包程序后选择重启计算机。(重启后会在鼠标右键菜单中添加两项相应的操作)电脑重启后,在桌面任意
位置右击鼠标,会在菜单中多出两个功能,如下图1所示。
1.3.2 TortoiseSVN使用说明
1. 初始文件导入
在我们想要做版本控制的项目根目录下,选中该包含该项目的文件夹,然后右击鼠标(右键),例如,项目根目录在桌面上,包含项目的文件夹的名字为project,选中project,右击鼠标,选择TortoiseSVN菜单下的Import,如下图 1所示,
图 1 右键
然后提示输入文本库的路径,如:svn://192.168.114.173/repository。如果服务器端在 5
配置管理工具SVN配置和使用说明
本地还可以写,svn://localhost/repository,如图2所示。确认后输入用户名和密码,即输入我们在文件passwd中定义的用户名和密码,或者是管理员分配的用户名和密码,数据就导入了版本库repository中。
图 2 Import
2. 版本库中取出项目
在本地的工作目录下任意空白位置(该目录由使用者在导出前建立,如本例中F://work,位置和名字可以根据每各人使用习惯建立),右击鼠标,在(右键)菜单中选择―SVN Checkout‖,然后在URL of repository一栏填写服务器中版本库的路径,如:svn://192.168.114.173/repository,在checkout directory一栏中填写取至本地的工作目录,如:F://work。在Revision中,选中HEAD revision,这样将会下载到版本库的最新版本。如果想下载库中的旧版本文件,可选中Revision,然后填入版本号即可。如果不想下载整个版本库,而是只想下载自己负责的那部分模块,可以在URL后添加模块名,如,svn://192.168.114.173/repository/test,确定后,就可以取出文件库repository下的test文件。如下图所示,单击OK,输入用户名和密码。
6
配置管理工具SVN配置和使用说明
图3 checkout
3. 更新项目
在工作目录下右键菜单中选择“SVN Update”,便就可以将文件库中最新版的文件取到本地计算机上,更新(升级)工作目录下所有文件的现有版本。
图4 更新
4. 修改文件
(版本库的修改包括了修改文件的内容,添加删除文件,添加删除工作目录下的子目录)选中需要修改的文件,在完成相应的修改后,右键选择菜单中“SVNCommit”,提交到文件库中,输入密码后系统便把修改后的版本库上传到服务端,即完成一次对文件的更新。
7
配置管理工具SVN配置和使用说明
图5
commit
图6 Enter Message
新版本提交之后,其他拥有写权限的用户也许会重复以上几步的操作,完成对文件的再一次更新。所以,每次在进行工作之前,必须首先对本地版本库执行一次更新,右击工作区,选择SVN Updata,将版本库中最新的版本下载到本地,然后再进行相应的修改操作。
5. 重命名和删除文件
如果要删除一个文件或者对一个文件进行重命名,只需(右键)选中该文件,然后右击鼠标,在TortoiseSVN的菜单下选择Delete或者Rename,SVN系统便会完成操作。在客户端的工作目录下将文件重命名或删除后,服务端的文件结构不会变化,只有当提
8
配置管理工具SVN配置和使用说明
交新版本库后,即commit后,服务端的文件结构才会被更新。如果误删除了文件,在没有提交版本库之前,可以通过对版本库的更新将文件重新下载到本地的版本库,也可以通过revert(在TortoiseSVN的菜单中)恢复。如果文件删除,并且已经提交,那么要找回文件只能通过下载旧版本库来完成。
图7 Delete
6. 下载某个文件的旧版本
如果想要得到某个文件的旧版本,只需在该文件上单击右键,选择Updata to revision即可。系统会提示输入版本号,例如要下载mmc.txt的第五个版本,选中Revision后,在对应的文本框中填入5即可,如图7。查看完版本5的文件后,如果想回复最新版本,只需要对mm.txt运行Updata,选中HEAD revision即可。
图8 update
7. 查看(文件库)服务器中版本库
选择“Repo-brower”菜单,就可以打开 Subversion 服务器上可见的文件库, 并 9
配置管理工具SVN配置和使用说明 可以对文件库中的文件及文件夹进行操作[1]。
图9 Repo-brower
图 10 Repository Browser
10
配置管理工具SVN配置和使用说明
第II 条 参考文献
[1] Michel Pilato.C, Ben Collicns-sussan, Fitzpatrick.BW. 使用Subversion进行版本控制—这对
Subversion 1.1 [EB/OL], , 2005-11-29
11
XXXX项目配置管理计划这里填写公司名称XXXX年XX月XX日这里填写公司名称文档编号XXXXXXXXXXXXXX版本号100产品…
文件编号:PTS-PDP-SCMP软件配置管理计划拟制:日期:审核:日期:批准:日期:xxx软件(中国)有限公司变更记录页 …
软件配置管理计划示例作者赵文锋计划名CADCSC软件配置管理计划项目名中国控制系统CAD工程化软件系统项目委托单位代表签名年月日项…
配置管理计划的主要内容2软件硬件资源3配置项计划4基线计划5配置库备份计划6版本控制规则7变更控制规则8审批资料来源中国教育在线
软件项目配置管理计划案例本案例选自软件项目管理案例教程韩万江机械工业出版社一书项目案例为校务通管理系统该项目的配置管理计划如下1引…
个人工作总结本人自一九八三年参加工作以来,一直在基层乡站从事畜牧兽医服务工作长达三十年。在各级党委、政府的正确领导下,在上级业务主…
20xx年秋季四(四)班数学教学工作总结当阳市实验小学李红莲学期末,因为特殊原因,我匆忙上阵担任了四(4)班的数学教学工作。对我来…
20xx年二年级上册小学辅导学困生总结素质教育是面向全体学生,而不是面向少数学生的.教师就要根据不同的学生的实际情况,采取相应的方…
这一学年我担任的是初中部六、七、八年级的音乐教育教学工作,音乐教育教学每年都反反复复,但在每年反复教育教学的过程中,我却有着不同的…
本学期我担任了08应用英语班的翻译课程的教学任务,现将本学期的教学工作大致总结如下。1.本学期我担任的翻译课是新课,所以我首先要熟…