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