版本控制ppt课件.ppt

上传人:牧羊曲112 文档编号:2160555 上传时间:2023-01-21 格式:PPT 页数:44 大小:770.50KB
返回 下载 相关 举报
版本控制ppt课件.ppt_第1页
第1页 / 共44页
版本控制ppt课件.ppt_第2页
第2页 / 共44页
版本控制ppt课件.ppt_第3页
第3页 / 共44页
版本控制ppt课件.ppt_第4页
第4页 / 共44页
版本控制ppt课件.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《版本控制ppt课件.ppt》由会员分享,可在线阅读,更多相关《版本控制ppt课件.ppt(44页珍藏版)》请在三一办公上搜索。

1、版本控制,讲师:梁 桐,实例,某研发团队2011研发了一款BBS系统在开发前,项目经理带来了一些基础代码经过3个月研发,发布了BBS 1.0版本因为销售业绩很好,所有决定继续研发 v2.0版但有客户使用使用中发现v1.0有严重Bug,不修复将造成严重后果研发团队安排部分人去修复,其他人继续研发v2.0Bug修复后,发布了v1.1版,没有造成严重损失Bug修复后需要将整合到v2.0中,保证今后的发布的版本中不会出现此问题,为什么学习版本控制?,参与过2人以上的软件项目开发?开发过程中程序是否具有版本控制?如果不使用版本控制还会出现什么问题?硬盘是否坏过。根据经验法则再加上墨菲定理,坏事情往往都发

2、生在最重要的时刻。,没有版本控制?,代码管理混乱备份多个版本,占用磁盘空间大解决代码冲突困难容易引发BUG难于追溯问题代码的修改人和修改时间难于恢复至以前正确版本无法进行权限控制项目版本发布困难,什么是版本控制?,版本控制(Revision Control):是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。也是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。通过文档控制(documentation control),能记录任何工程专案内各个模组的改动历程,并为每次改动编上序号。,版本控

3、制软件,CVS(Concurrent Versions System)代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工作。VSS(Visual Source Safe)只能在windows下,作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理Git是用于Linux内核开发的版本控制工具。它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。SV

4、N(Subversion),是一个开放源代码的版本控制系统,采用了分支管理系统,它的设计目标就是取代CVS。,1、版本控制入门简介2、SVN入门3、SVN服务器端与客户端的使用SVN安装SVN仓库建立与启动 SVN命令 4、TortoiseSVN安装5、SVN权限配置 6、TortoiseSVN基本操作【重点】7、SVN与第三方Eclipse整合【重点】8、SVN与第三方Apache整合 9、SVN版本控制的前身CVS简介 10、SVN目录规范,目标,SVN的特性,统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有

5、文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。重命名、复制、删除文件等动作都保存在版本历史记录当中。对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。分支的开销非常小。优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之

6、间的网络流量。支持元数据(Metadata)管理。每个目录或文件都可以定义属性(Property),它是一些隐藏的键值对,用户可以自定义属性内容,而且属性和文件内容一样在版本控制范围内。支持FSFS和Berkeley DB两种资料库格式。不足:只能设置目录的访问权限,无法设置单个文件的访问权限。,SVN=版本控制+备份服务器,SVN服务器运行方式独立服务器方式:svnserve借助Apache方式:mod_dav_svnSVN版本数据存储方式BDB(Berkeley DB):数据库方式FSFS:文件方式(推荐),SVN运行方式与存储方式,Subversion组件,服务器组件(管理员使用)svn

7、admin:用来创建、调整或修改svn档案库的工具mod_dav_svn:Apache HTTP服务器的一个插件,使版本库可以通过网络访问 svnserve:一个单独运行的服务器程序,可以作为守护进程或由SSH调用。这是另一种使版本库可以通过网络访问的方式。客户端组件(用户使用)svn:命令行客户端程序,这是用来管理数据的主要工具,SVN版本控制策略1,拷贝-修改-合并 方案cvs采用,SVN版本控制策略2,拷贝-修改-合并 方案,VSS控制策略,锁定-修改-解锁 方案(VSS),Subversion安装,Subversion软件下载安装http:/subversion.tigris.org或

8、http:/subversion.apache.org/我们使用的版本 Setup-Subversion-1.6.5.msi验证是否安装成功svnserve version,Subversion 建立仓库,建立svn仓库(单仓库、多仓库)命令 svnadmin create 仓库名称例如:svnadmin create E:softwarerepositorysvnitcast仓库目录说明db目录:就是所有版本控制的数据存放文件hooks目录:脚本文件的目录locks目录:放置subversion文件库锁定数据的目录,用来追踪存取文件库的客户端format文件是一个文本文件,里面只放了一个整数

9、,表示当前文件库配置的版本号。conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等),Subversion 启动1,cmd命令行启动svnserve d r 文档仓库路径-d后台执行-r版本库的根目录例如:svnserve-d-r F:softwarerepositorysvnitcastsvn端口号3690使用 netstat an 查看svn是否启动成功协议:tcp/ip,Subversion 启动2,windows服务自动启动利用xp、2000以上的系统自带的工具service control,执行文件sc.exesc create SVN-Service binpath=E:

10、softwaresvnbinsvnserve.exe-service-r E:softwarerepositorysvn displayname=SVN-Service start=auto depend=Tcpipbinpath 指定svnserve 的路径和命令start=auto 表示服务自动启动。注意:等于号的左边无空格,而右边必须有一个空格Displayname描述、start启动方式、depend依存关系在此命令中-r(-root)项目版本仓库的根目录启动服务 net start SVN-Service删除服务 sc delete SVN-Service查看服务是否添加成功,可以选

11、择windows 控制面板管理工具服务 会发现列表中有SVN-service服务,SVN命令1,svn checkout 从版本库检出一个工作拷贝格式:svn checkout URLREV.PATH例如:svn checkout svn:/localhost/itcast E:developworkroomuser1说明:REV,与-r功能相同,指定检出的版本号,同时检出多个工作拷贝svn commit 将改动的文件提交到版本库格式:svn commit path例如:svn commit-m“message readme.txtsvn update 更新你的工作拷贝例如:svn updat

12、e-r 1 readme.txt(更新到指定版本)svn add 想版本库中添加新文件例如:svn add*-force(递归)例如:svn add-depth=empty onlydir(尽添加文件夹)svn info 显示本地或远程条目的信息svn help|svn help 获取帮助信息,SVN命令2,svn delete从版本库中删除文件和目录。例如:svn delete-m delete svn:/localhost/oa/readme.txt例如:svn delete-force file3.txtsvn revert 将工作副本文件恢复到原始版本(恢复大部份的本地修改)。svn

13、list 列出版本库中的目录内容。例如:svn list svn:/localhost/oasvn status 显示工作副本中目录与文件的状态。未指定参数时,只显示本地修改的条目例如:svn status-show-updates-verbose|-u-vsvn copy 在工作副本或版本库中复制数据,保留历史。格式:svn copy SRCREV.DSTsvn move 在工作副本或版本库中移动或改名文件或目录。格式:svn move SRC.DSTsvn merge将两个源差异应用至工作副本。格式:merge sourceURL1N sourceURL2M WCPATH例如:svn me

14、rge-reintegrate svn:/localhost/oa/branches/fixed,SVN命令3,svn switch 把工作拷贝更新到别的URL格式:svn switch URLPEGREV PATHsvn switch-relocate FROM TO PATH.例子:svn switch-relocate svn:/localhost/bbs1 svn:/localhost/bbs.svn mkdir 创建一个纳入版本控制的新目录 格式:svn mkdir PATH.svn mkdir URL.例子:svn mkdir branches共性:如果出现URL,一般需要“日志信

15、息”删除密码信息:windows:C:Documents and SettingsAdministratorApplication DataSubversionauthlinux下:rm-rf/.subversion/auth,SVN基本交互流程图,checkout,update,commit,TortoiseSVN介绍,TortoiseSVN是Subversion版本控制系统的一个免费开源客户端。TortoiseSVN是Subversion的windows扩展。它使你避免接触Subversion枯燥而且不方便的Command Line。它完全嵌入Windows Explorer,使用时只需在

16、正常的窗口里右键操作就可以了,TortoiseSVN安装,TortoiseSVN下载安装http:/,Subversion权限配置,svnserve.conf 定义所有认证和授权政策anon-access 匿名用户【none/read/write】例如:anon-access=noneauth-access 授权用户【none/read/write】例如:auth-access=writepassword-db用户保存文件例如:password-db=passwdauthz-db权限管理文件例如:authz-db=authzsasl认证(了解)passwd 存放项目成员账户信息一行一个用户,用

17、户名和密码使用等号隔开authz主要是做复杂的群组权限控制给组授权是必须使用多仓库:repository:/baz/fuz单仓库:/foo/bar,TortoiseSVN图标,正常状态新检出的工作复本,提交过程中出现冲突,已修改上次更新复本需要提交,文件设置了svn:needs-lock属性,svn会让此文件只读,直到获得文件锁,拥有了文件锁,文件或目录已纳入到版本控制,新添加的文件,且没有纳入到版本控制,设置needs-lock,properties/new/svn:needs-lock设置logminsize,properties/new/tsvn:logminsize,忽略所选项,已删除

18、,还没有提交的文件,TortoiseSVN其他操作,Show log:查看日志Repo-browser:查看文档仓库Check for modifications:查看修改项Revison graph:版本图表Edit conflicts:编辑冲突Resolved:已解决冲突Update to revision:更新到指定版本。HEAD revision 最新版本Rename:重命名Delete:删除Revert:还原Get lock:获得锁/Release lock:释放锁Add:添加到版本库Properties:属性配置Settings:参数设置,SVN与Eclipse整合,下载SVN插件

19、(http:/subclipse.tigris.org)我们使用版本eclipse_svn_site-1.6.5.zip解压到一个文件夹1、进入MyEclipse 8.5 安装目录中dropins目录并创建一个svn.link(文件名任意)的文件。内容为:path=解压缩路径例如:path=E:javaIDEMyEclipse 8.5svn2、进入eclipse安装目录中links目录并创建一个svn.link(文件名任意)的文件。中英文切换configuration/config.ini文件中添加以下语句1、osgi.nl=en_US 2、osgi.nl=zh_CN,SVN与Apache整合

20、1,下载Apache(http:/www.apache.org)我们使用版本apache_2.2.14-win32-x86-no_ssl.msi测试安装成功:http:/localhost打开Apache安装目录下Apache2.2confhttpd.conf配置文件将下列2行前面的#移除(第83行)LoadModule dav_module modules/mod_dav.soLoadModule dav_fs_module modules/mod_dav_fs.so并同时在上面两行下面添加以下两行(一定放在这个位置)LoadModule dav_svn_module modules/mod

21、_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so找到Subversion安装目录下的以下两个文件bin/mod_authz_svn.sobin/mod_dav_svn.so复制到Apache安装目录下modules目录中,SVN与Apache整合2,使用Apache安装目录下的bin/htpasswd.exe可执行性文件来生成授权文件,第一次生成使用-cb参数:格式:htpasswd cb filename username password例如:htpasswd cb passwd.apache user1 pwd

22、参数说明:-c 创建一个加密文件-b 在apache htpasswd 命令行中一并输入用户名和密码而不是根据提示输入密码-m 默认apache htpasswd 命令采用MD5算法对秘密进行加密-d apache htpasswd 命令采用CRYPT算法对密码进行加密-s apache htpasswd命令采用SHA算法对密码进行加密将生成的passwd.apache文件移动到svn版本库中conf目录下,apache安装目录下的confhffpd.conf文件的最后面加入#配置虚拟目录#引用远程访问模块DAV svn#项目版本库路径SVNPath E:/software/repositor

23、y/svn/bbs#授权文件AuthzSVNAccessFile E:/software/repository/svn/bbs/conf/authz#所有用户都需要身份验证Satisfy AnyRequire valid-user#验证方式AuthType Basic#项目的名称AuthName“bbs“#用户文件AuthUserFile E:/software/repository/svn/bbs/conf/passwd.apache访问方式http:/localhost/svn/itcast,使用SVN注意事项,经常更新:降低冲突的可能性提交前需要在本机测试通过,降低将问题代码传到版本库提

24、交时一定写备注,方便其他员工查看和自己以后回顾对于不需要提交的文件不要提交到版本库,CVS,CVS安装下载CVS服务器(http:/cvsnt-server-2.5.04.3510.msi默认端口:2401CVSNT用户使用win系统账户,即在服务器上创建win系统用户(注意权限安全)即可,这样每个仓库都可以使用服务器的系统用户登录管理,CVSNT界面说明,Server Information,用于查看服务器信息以及一些简单的统计信息Repository configuration,配置CVS仓库,包括添加、删除、修改等Server Settings,配置服务器运行的一些参数,如端口、加密、压

25、缩等选项Compatibility Options,兼容性选项Plugins,插件配置AdvancedAbout,管理cvsnt服务的状态。暂停或启动cvsnt和cvsnt lock服务。,CVS创建用户1,使用系统用户绑定到当前的CVS项目上格式:set cvsroot=:pserver:lenovo127.0.0.1:/bbsc1、cvs login 登录并输入系统用户密码2、例如:cvs passwd-a-r lenovo itcast-a Add user-r Alias username to real system user在/CVSROOT文件夹下将会生成passwd文件,CVS

26、创建用户2,CVSROOT目录下,新建文件并命名为passwd.在该文件里添加如下内容:格式:user4:administrator总共有三部分信息,用户名、密码、本地用户三部分之间使用冒号“:”来进行分割 用户名:就是登陆CVS的用户名密 码:用户的密码,需要经过加密的,如果为空,那么就是空密码本地用户:CVS用户这个别名对应的本地用户,(跟本地用户没有任何其他关系,仅仅是别名的关系)在passwd文件的相同目录下继续新建文件并命名为admin.将上诉user4用户加入文件中 同一目录下找到checkoutlist文件并去掉只读属性,在文件内追加一行,内容为admin.之后可恢复只读 修改同

27、一目录下config文件的SystemAuth=no(注意要去掉).至此,直接使用CVS自己的帐户即可登陆,CVS创建用户3,CVSROOT目录下,创建一个文件:passwd 内容:user5:administrator命令行:cvs-d:pserver:user5localhost:/android passwd,Subversion目录规范,创建三个顶级目录/trunk 存放开发的“主线”/branches 存放支线副本/tags 存放标签副本,并且不能修改,SVN相关软件介绍,subversion命令行客户端svn是正式的subversion客户端程序。为了那些有兴趣发展subversion客户端的人们,subversion作成一系列的链接库,这些链接库除了可以通过C API存取外,还可被其他语言使用。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号