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