软件配置管理工具SVN操作指引Word文档格式.doc
《软件配置管理工具SVN操作指引Word文档格式.doc》由会员分享,可在线阅读,更多相关《软件配置管理工具SVN操作指引Word文档格式.doc(29页珍藏版)》请在冰点文库上搜索。
1概述
目的
为了对配置管理工具(subversion,以下简称为SVN)应用过程提供统一指导,特制订本指引。
范围
本指引适用于公司所有采用SVN作为配置管理工具的各项目组。
文件内容
本指引内容包括SVN基础知识、SVN基本应用、SVN使用规范三部分。
术语
2SVN基础知识
2.1SVN简介
Subversion(以下简称SVN)是一个自由、开放源码的版本控制系统。
在它的管理下,文件和目录可以超越时空。
SVN将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和修改的情况。
这样我们就可以籍此将数据回复到以前的版本,并可以查看更改细节。
也就是说,一旦一个文件被传到SVN上面,那么不管对它进行什么操作,SVN都会有清晰的记录,即使它在N天前被删除了,也可以被找回来。
所以,许多人将版本控制系统比做一种神奇的“时光机器”。
。
2.2SVN的特性
.2.2.1版本化目录
SVN实现的“虚拟”版本化文件系统可以跟踪目录树的变更。
也就是说,在SVN中,文件和目录都是版本化的。
.2.2.2真实的版本历史
由于实现了文件和目录的版本化,SVN可以记录文件复制、重命名这些常见操作带来的版本变更。
即在SVN中,对文件或目录都可以进行增加、删除、复制、重命名等操作,并有版本历史记录。
.2.2.3原子化提交
一个变更集要么完整地被提交到仓库中,要么不做任何改变,从而避免发生不完整地提交变更的情况。
.2.2.4受控元数据
每一个文件和目录都有一个与其对应的属性集。
.2.2.5可选的网络层
SVN仓库的存取是一个抽象概念,有利于其他人实现新的网络访问机制,SVN可以作为一个外部模块插入到ApacheHTTP服务器中。
.2.2.6一致的数据处理
SVN使用一种二进制的比较算法来表示文件之间的区别。
.2.2.7高效的分支和标记
分支和标记所带来的开销与项目的规模并没有直接的关系,SVN在创建分支和标记时使用类似“连接”的方式来复制整个项目。
因此这些操作通常只会花费很少且固定的时间。
.2.2.8扩展能力
SVN是由一组设计良好的APIs实现的,包含在C的共享库中,这使得它很容易维护。
也很容易被其他应用程序或语言使用。
2.3SVN的架构
3
3SVN基本应用
3.1客户端(TortoiseSVN)的安装
TortoiseSVN是Subversion基于windows下的一个免费开源客户端,能为用户提供友好直观的图示化操作。
免去输入难记的命令行,方便使用。
它能与windows外壳(例如资源管理器)无缝集成,可以保持你在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。
.3.1.1安装程序下载地址
TortoiseSVN的安装程序存放在公司CMS系统的以下目录:
/01公司共享资源/03_工具软件/02配置库工具/SVN
.3.1.2程序安装过程
点击YES,重启电脑。
在桌面空白地方鼠标右键,会出现下图。
安装成功。
.3.1.3中文语言包的安装(可选)
在公司CMS系统:
存放着相同版本的LanguagePack,直接双击安装。
然后在鼠标右键——TortoiseSVN——Settings,如下界面,在“Language”一栏选择“中文(简体)”,确定后即可生效。
3.2客户端常用操作
如下图,通过TortoiseSVN——Repo-browser,可以登陆访问版本库,浏览库中内容,并可以进行打开、查看日志、导出、增加文件(夹)、删除、重命名、另存为等操作。
通过SVNCheckout,则可以将服务器版本库上的内容下载到本地,建立您个人的私有工作区。
个人在工作区的修改,在未提交前是不会影响到服务器版本库上的内容。
从而方便项目组的协同工作。
在工作区内,能进行比在“Repo-browser”中更多的操作,包括以下(如下图),下面具体介绍:
.3.2.1Repo-browser版本库浏览
TortoiseSVN——Repo-browser,版本库浏览工具,点击后出现以下对话框:
在里面输入版本库地址,结构为:
svn:
//服务器IP/配置库名称(注意svn为小写),如“svn:
//192.168.175.53/MDJT_ZJXT_2Q资金系统二期报表开发”,该URL地址配置管理员在创建配置库的时候一般都会邮件发送给你,连同用户名及密码信息等。
如果已经登陆过,会默认保存有URL历史记录,点击下拉框直接选择即可。
点击“OK”进入登陆界面,界面如下:
输入用户名和密码即可进入所在的版本库,建议勾选“Saveauthentication”保存帐户信息,方便以后登陆及在版本库内的每一个操作,免去重复输入的麻烦。
登陆后的界面如下:
目录结构
文件名称
对此文档最近进行操作的人员名称
对此文档最近进行操作的时间
此文件目录当前的版本号
.3.2.2SVNCheckout文件检出
用此命令可以从服务器导出选中的配置库目录到本地拷贝,它和Export的区别在于,
检出的文件受版本控制,目录下的每个文件夹内都隐藏有.SVN文件夹(注意不要误删除),里面存储着各文件的版本信息。
首先在本地硬盘新建一个空白文件夹作为检出的工作拷贝存储空间。
选择服务器版本库地址名称,建议项目成员可具体到“/01工作区”
选择要checkout保存到的目标目录
检出后的文件被绿色小勾覆盖,如下图所示:
注:
“URLofRepository”该栏,建议一般项目成员具体到“/01工作区”。
只将工作区内容检出到本地作为日常工作区域。
免去以后其他各区基线内容不断增加,Update到本地所造成的占据你本地硬盘空间过大。
检出到工作拷贝的文件可以任意修改,在您没提交之前,修改是不会影响到服务器的版本库。
每位用户每次修改提交后,版本库自动更新成最新版本,全局版本号增加1。
.3.2.3SVNCommit提交修改
文件修改保存,但没进行提交的时候,会出现红色感叹号提示。
填写日志信息,勾选要提交的文档(默认为全选,可一次提交多份文档。
)点击“OK”提交成功,全局版本号增加1,覆盖图标由红色叹号变为绿色小钩。
.3.2.4SVNUpdateSVN更新
如果配置库在本地已有工作拷贝,则取得最新版本只是执行SVNUpdate即可。
在本机的工作拷贝区内,右键,选择SVNUpdate,系统弹出更新提示框,点击确定,则把服务器的最新版本更新下来。
修改文件前请先Update,保持本地工作区与服务器最新版本一致。
可防止提交修改时报错,及有效减少冲突发生。
.3.2.5Add添加
新增文件“new”已经放在工作文件夹中(此时未有绿色小钩,尚未纳入版本控制)
空白地方,右键,选择TortoiseSVN——add
添加成功后图标变为:
再进行一次commit操作即可。
将添加的文档纳入版本库,图标变为绿色小钩:
“new”文件添加到工作文件夹后,转到上级目录,右键——SVNCommit,直接提交修改也可以实现文件增加。
.3.2.6Delete删除
SVN支持文件删除,而且操作简单,方便。
选择要删除的文件,TortoiseSVN——Delete,再把删除操作提交到服务器(Commit)。
若误操作对文件进行了Delete,但未提交(Commit)到服务器,可以用“Revert”来进行恢复。
.3.2.7Rename重命名
SVN支持文件改名,点击Rename,弹出文件名称输入框,输入新的文件名称,点击确定,再把修改提交,即可完成文件改名。
.3.2.8Move移动位置
SVN支持文件移动位置(包括直接移动和增量复制)。
操作方法如下:
在浏览配置库(Repo-browser)的界面上,直接选中要移动的文件,右键拖拽,鼠标移动到目标文件夹时候松开右键,在目标文件夹下方有以下选项,如图(将“11.doc”文件移动到“16其他”文件夹中):
选择需要的功能选项(如图为“moveitemstohere”),在弹出的对话框中填写备注信息,点击OK后,文档移动位置成功。
.3.2.9Getlock加锁
在本地工作区内,选中需要加锁的文件,TortoiseSVN——getlock。
弹出的对话框中,备注栏填写加锁的原因,点击OK,加锁生效。
文件加锁后其他用户对该文件不能编辑、修改等操作。
文件加锁生效后,在工作区内的文件会被加锁图标覆盖。
不需要再进行提交(commit)操作,其他用户在浏览版本库的时候,可以直接看到该文件已经被某个用户锁定。
文件加锁使用完毕后,记得及时解锁释放权限,使用TortoiseSVN—releaselock。
.3.2.10Import导入
导入是一种批量向服务器上添加文件的方法,如果你想把本地的文件或文件夹添加到服务器上的某个目录下面,那么在本地的目录下,在空白处右键TortoiseSVN—import,会弹出以下对话框:
选择服务器版本库的端目录
填写日志信息,点击OK,导入完成后,全局版本号增加1。
刚才同时导入的所有文件都为同一个版本号。
本机导入到目标服务器之后,本机目录并没有改变,也并不是工作拷贝,如果要对文件再做修改并能提交到服务器上的话,必须先从服务器上把文件“update”下来(前提是本机已经建立并checkout出了工作区),保持自己的工作区与服务器版本库最新版本一致。
.3.2.11Export导出
用此命令,指定路径,便可把整个工作拷贝干净地导出到本地目录下,所谓“干净”指的是导出的文件将不带svn文件标志,不受SVN的版本控制,文件及文件夹没有绿色的”√”符号标志。
默认的是导出当前版本的目录内容,当然也可以是你指定的任何一个版本的目录内容。
.3.2.12Updatetorevision更新至新版本
如果想查找某一个版本的内容,可以在工作区空白地方,右键,选择TortoiseSVN—UpdateToRevision,在提示框内输入指定的版本号,即可更新到指定的版本。
默认为服务器当前最新版本
可指定版本号,任一版本
.3.2.13Relocate重新定位
当服务器上的版本库目录已经改变,我们可以把工作拷贝重新定位,在“ToURL”框中输入新的地址。
使工作拷贝与新的版本库地址重新关联。
输入版本库新的URL地址
在ToURL输入框中输入新的URL地址,一直选择“OK”即可。
.3.2.14Showlog显示日志
TortoiseSVN—Show-Log,系统弹出日志信息,包括版本号,作者,更新日期,日志信息(如图):
此外,SVN还自带了简单的统计功能。
点击日志信息框右下角的Statistics按钮,系统显示统计信息,subversion有三种统计选择:
Statistics,Commitsbyweek,Commitsbyauthor,效果图如下:
.3.2.15Revisiongraph版本树显示
TortoiseSVN—revisiongraph,它可以把对此目录所做的所以操作以图形化的形式显示出来,详细记录每一步所做的操作,相当于“showlog”的一个图解,如图所示:
.3.2.16Create(apply)patch创建(应用)补丁
如果你对一个文件没有修改权限,但是迫于形势,你又必须对这个文件进行修改,这时你可以用creatpatch创建补丁,然后把你创建的补丁发给对此目录有写权限的用户,让他执行appypatch后,你所做的修改就会被提交到服务器上。
.3.2.17resolved冲突已解决
当两人对同一文件进行编辑时,一个人先提交,另一个人再进行提交的时候就会出现冲突,并提醒你必须先更新你的工作拷贝后才能对这个文件进行修改,如下图:
如对“new.txt”文档,已经有另外一个用户修改,并提交。
你在自己的工作区修改后,要提交到服务器的时候,会出现以下报错:
这时就要解决冲突,首先要更新你的本地工作拷贝,执行update后,你的工作文件夹会出被叹号图标覆盖,提示有冲突需要解决。
文件所在的工作区会出现如下图所示的文件:
出现冲突的文件
我修改后的文件
原始文件
别人修改后提交的文件
这时选中被叹号图标覆盖的文件(出现冲突的文件),右键,TortoiseSVN—Editconflicts,会出现如下图所示,这时你就可以对出现的冲突文本进行编辑,选定你最终想要的文档,就是所谓的“Merge”合并操作。
别人的修改
我的修改
合并的版本
根据需要选择合并的操作选项,usetestblackfrom“theirs”(合并后只保留他人的修改),usetestblackfrom“mine”(合并后只保留我的修改),usetestblackfrom“mine”before“theirs”(合并两人的修改,我的修改内容放置在他人的修改之前),usetestblackfrom“theirs”before“mine”(合并两人的修改,他人的修改内容放置在我的修改之前)。
如图示,选择了usetestblackfrom“theirs”before“mine”(合并两人的修改,他人的修改内容放置在我的修改之前),效果如下:
最终确定的合并生成的内容
确认修改完成后,保存修改。
右键,TortoiseSVN—Resolve
合并完成后的文件,会被红色感叹号图标覆盖。
执行一次commit,把修改提交上去,新版本生成。
SVN只支持二进制文件的内容合并。
所以,为了减少冲突及合并产生的风险,你在修改文档前务必先update,保持工作区与服务器最新版本一致。
对于非二进制文件,建议使用加锁(getlock)功能。
3.3SVN的使用规范
.3.3.1及时提交更新(commit)
开发人员每次修改,或者新增、删除、拷贝工作区对象后,应该立刻提交到版本库(commit),有效保持工作区与版本库的高度一致。
.3.3.2经常更新工作拷贝(update),保持与最细版本同步
在本地工作区内修改文件前必须先下载最新版本(update),这样可以尽量减少冲突、合并。
.3.3.3提交的内容
提交前先在本地进行测试,不允许将有明显错误的文件提交到服务器上。
临时文件、无意义的草稿文件等不需纳入版本管理,不需提交到配置库。
.3.3.4每次提交要填写备注信息
备注有助于其他人(包括三个月后的你自己)理解你对文件所做修改。
备注信息长度:
>
8字符
备注信息内容:
简单说明该次更新的主要内容,确保信息的清晰、明了、可用。
(用户、时间等信息不需包括,工具已记录)。
如:
“新增解决方案清单”、“修改报表参数内容”、“根据设计评审结果补充”。
避免出现无效的日志内容:
如:
“修改完毕”、“张三更新”、“修正部分等”。
SVN配置库现已增加“强制提交备注”
的设置,如未录入足够长度的日志信息,commit提示框中的“OK”按钮为灰色不可用。
.3.3.5提交文档按照规范命名
提交的文档必须按规范进行命名,命名规则为:
项目简称-文件名-(日期)
需要特别标示日期信息的文件,如会议纪要、通知在命名中才增加“日期”段,其他项目过程文档命名不需要日期,工具已记录。
.3.3.6适当使用加锁功能
由于SVN只支持二进制文件的合并功能,对于非二进制文件(如word\excel)在编辑修改前建议采用加锁(getlock)功能,减少冲突发生。
但注意在修改完成,提交后,及时解锁释(releaselock)放权限。
4附录
4.1参考文件
4.2质量记录
27