版本控制课件lt.ppt

上传人(卖家):晟晟文业 文档编号:5060689 上传时间:2023-02-07 格式:PPT 页数:44 大小:770.50KB
下载 相关 举报
版本控制课件lt.ppt_第1页
第1页 / 共44页
版本控制课件lt.ppt_第2页
第2页 / 共44页
版本控制课件lt.ppt_第3页
第3页 / 共44页
版本控制课件lt.ppt_第4页
第4页 / 共44页
版本控制课件lt.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、高级软件人才实作培训专家高级软件人才实作培训专家!版本控制版本控制讲师:梁讲师:梁 桐桐高级软件人才实作培训专家高级软件人才实作培训专家!实例l某研发团队2011研发了一款BBS系统l在开发前,项目经理带来了一些基础代码l经过3个月研发,发布了BBS 1.0版本l因为销售业绩很好,所有决定继续研发 v2.0版l但有客户使用使用中发现v1.0有严重Bug,不修复将造成严重后果l研发团队安排部分人去修复,其他人继续研发v2.0lBug修复后,发布了v1.1版,没有造成严重损失lBug修复后需要将整合到v2.0中,保证今后的发布的版本中不会出现此问题高级软件人才实作培训专家高级软件人才实作培训专家!

2、高级软件人才实作培训专家高级软件人才实作培训专家!为什么学习版本控制?l参与过2人以上的软件项目开发?l开发过程中程序是否具有版本控制?l如果不使用版本控制还会出现什么问题?l硬盘是否坏过。根据经验法则再加上墨菲定理,坏事情往往都发生在最重要的时刻。高级软件人才实作培训专家高级软件人才实作培训专家!没有版本控制?l代码管理混乱l备份多个版本,占用磁盘空间大l解决代码冲突困难l容易引发BUGl难于追溯问题代码的修改人和修改时间l难于恢复至以前正确版本l无法进行权限控制l项目版本发布困难高级软件人才实作培训专家高级软件人才实作培训专家!高级软件人才实作培训专家高级软件人才实作培训专家!什么是版本控

3、制?l版本控制(Revision Control):是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。也是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。l通过文档控制(documentation control),能记录任何工程专案内各个模组的改动历程,并为每次改动编上序号。高级软件人才实作培训专家高级软件人才实作培训专家!版本控制软件lCVS(Concurrent Versions System)代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工作。l

4、VSS(Visual Source Safe)只能在windows下,作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理lGit是用于Linux内核开发的版本控制工具。它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。l。lSVN(Subversion),是一个开放源代码的版本控制系统,采用了分支管理系统,它的设计目标就是取代CVS。高级软件人才实作培训专家高级软件人才实作

5、培训专家!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的特性l统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文

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

7、data)管理。每个目录或文件都可以定义属性(Property),它是一些隐藏的键值对,用户可以自定义属性内容,而且属性和文件内容一样在版本控制范围内。l支持FSFS和Berkeley DB两种资料库格式。l不足:只能设置目录的访问权限,无法设置单个文件的访问权限。高级软件人才实作培训专家高级软件人才实作培训专家!SVN=版本控制+备份服务器 高级软件人才实作培训专家高级软件人才实作培训专家!lSVN服务器运行方式独立服务器方式:svnserve借助Apache方式:mod_dav_svnlSVN版本数据存储方式BDB(Berkeley DB):数据库方式FSFS:文件方式(推荐)SVN运行方

8、式与存储方式高级软件人才实作培训专家高级软件人才实作培训专家!高级软件人才实作培训专家高级软件人才实作培训专家!Subversion组件l服务器组件(管理员使用)svnadmin:用来创建、调整或修改svn档案库的工具mod_dav_svn:Apache HTTP服务器的一个插件,使版本库可以通过网络访问 svnserve:一个单独运行的服务器程序,可以作为守护进程或由SSH调用。这是另一种使版本库可以通过网络访问的方式。l客户端组件(用户使用)svn:命令行客户端程序,这是用来管理数据的主要工具高级软件人才实作培训专家高级软件人才实作培训专家!SVN版本控制策略1拷贝拷贝-修改修改-合并合并

9、 方案cvs采用高级软件人才实作培训专家高级软件人才实作培训专家!SVN版本控制策略2拷贝拷贝-修改修改-合并合并 方案高级软件人才实作培训专家高级软件人才实作培训专家!VSS控制策略锁定锁定-修改修改-解锁解锁 方案(VSS)高级软件人才实作培训专家高级软件人才实作培训专家!Subversion安装lSubversion软件下载安装http:/subversion.tigris.org或http:/subversion.apache.org/我们使用的版本 Setup-Subversion-1.6.5.msil验证是否安装成功svnserve version 高级软件人才实作培训专家高级软件

10、人才实作培训专家!Subversion 建立仓库l建立svn仓库(单仓库、多仓库)命令 svnadmin create 仓库名称例如:svnadmin create E:softwarerepositorysvnitcastl仓库目录说明db目录:就是所有版本控制的数据存放文件hooks目录:脚本文件的目录locks目录:放置subversion文件库锁定数据的目录,用来追踪存取文件库的客户端format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)高级软件人才实作培训专家高级软件人才实作培训专家!Subve

11、rsion 启动1lcmd命令行启动svnserve d r 文档仓库路径-d后台执行-r版本库的根目录例如:svnserve-d-r F:softwarerepositorysvnitcastsvn端口号3690使用 netstat an 查看svn是否启动成功协议:tcp/ip高级软件人才实作培训专家高级软件人才实作培训专家!Subversion 启动2lwindows服务自动启动利用xp、2000以上的系统自带的工具service control,执行文件sc.exesc create SVN-Service binpath=E:softwaresvnbinsvnserve.exe-se

12、rvice-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查看服务是否添加成功,可以选择windows 控制面板管理工具服务 会发现列表中有SV

13、N-service服务高级软件人才实作培训专家高级软件人才实作培训专家!SVN命令1lsvn checkout 从版本库检出一个工作拷贝格式:svn checkout URLREV.PATH例如:svn checkout svn:/localhost/itcast E:developworkroomuser1说明:REV,与-r功能相同,指定检出的版本号,同时检出多个工作拷贝lsvn commit 将改动的文件提交到版本库格式:svn commit path例如:svn commit-m“message readme.txtlsvn update 更新你的工作拷贝例如:svn update-r

14、 1 readme.txt(更新到指定版本)lsvn add 想版本库中添加新文件例如:svn add*-force(递归)例如:svn add-depth=empty onlydir(尽添加文件夹)lsvn info 显示本地或远程条目的信息lsvn help|svn help 获取帮助信息高级软件人才实作培训专家高级软件人才实作培训专家!SVN命令2lsvn delete从版本库中删除文件和目录。例如:svn delete-m delete svn:/localhost/oa/readme.txt例如:svn delete-force file3.txtlsvn revert 将工作副本文

15、件恢复到原始版本(恢复大部份的本地修改)。lsvn list 列出版本库中的目录内容。例如:svn list svn:/localhost/oalsvn status 显示工作副本中目录与文件的状态。未指定参数时,只显示本地修改的条目例如:svn status-show-updates-verbose|-u-vlsvn copy 在工作副本或版本库中复制数据,保留历史。格式:svn copy SRCREV.DSTlsvn move 在工作副本或版本库中移动或改名文件或目录。格式:svn move SRC.DSTlsvn merge将两个源差异应用至工作副本。格式:merge sourceURL

16、1N sourceURL2M WCPATH例如:svn merge-reintegrate svn:/localhost/oa/branches/fixed高级软件人才实作培训专家高级软件人才实作培训专家!SVN命令3lsvn switch 把工作拷贝更新到别的URL格式:svn switch URLPEGREV PATHsvn switch-relocate FROM TO PATH.例子:svn switch-relocate svn:/localhost/bbs1 svn:/localhost/bbs.lsvn mkdir 创建一个纳入版本控制的新目录 格式:svn mkdir PATH

17、.svn mkdir URL.例子:svn mkdir branchesl共性:如果出现URL,一般需要“日志信息”l删除密码信息:windows:C:Documents and SettingsAdministratorApplication DataSubversionauthlinux下:rm-rf/.subversion/auth 高级软件人才实作培训专家高级软件人才实作培训专家!SVN基本交互流程图checkoutupdatecommit高级软件人才实作培训专家高级软件人才实作培训专家!TortoiseSVN介绍lTortoiseSVN是Subversion版本控制系统的一个免费开源

18、客户端。lTortoiseSVN是Subversion的windows扩展。它使你避免接触Subversion枯燥而且不方便的Command Line。它完全嵌入Windows Explorer,使用时只需在正常的窗口里右键操作就可以了高级软件人才实作培训专家高级软件人才实作培训专家!TortoiseSVN安装lTortoiseSVN下载安装http:/ 定义所有认证和授权政策anon-access 匿名用户【none/read/write】例如:anon-access=noneauth-access 授权用户【none/read/write】例如:auth-access=writepassw

19、ord-db用户保存文件例如:password-db=passwdauthz-db权限管理文件例如:authz-db=authzsasl认证(了解)lpasswd 存放项目成员账户信息一行一个用户,用户名和密码使用等号隔开lauthz主要是做复杂的群组权限控制给组授权是必须使用多仓库:repository:/baz/fuz单仓库:/foo/bar高级软件人才实作培训专家高级软件人才实作培训专家!TortoiseSVN图标正常状态新检出的工作复本提交过程中出现冲突已修改上次更新复本需要提交文件设置了svn:needs-lock属性,svn会让此文件只读,直到获得文件锁拥有了文件锁文件或目录已纳入

20、到版本控制新添加的文件,且没有纳入到版本控制设置needs-lock,properties/new/svn:needs-lock设置logminsize,properties/new/tsvn:logminsize忽略所选项已删除,还没有提交的文件高级软件人才实作培训专家高级软件人才实作培训专家!高级软件人才实作培训专家高级软件人才实作培训专家!TortoiseSVN其他操作lShow log:查看日志lRepo-browser:查看文档仓库lCheck for modifications:查看修改项lRevison graph:版本图表lEdit conflicts:编辑冲突lResolve

21、d:已解决冲突lUpdate to revision:更新到指定版本。HEAD revision 最新版本lRename:重命名lDelete:删除lRevert:还原lGet lock:获得锁/Release lock:释放锁lAdd:添加到版本库lProperties:属性配置lSettings:参数设置高级软件人才实作培训专家高级软件人才实作培训专家!SVN与Eclipse整合l下载SVN插件(http:/subclipse.tigris.org)l我们使用版本eclipse_svn_site-1.6.5.zipl解压到一个文件夹1、进入MyEclipse 8.5 安装目录中dropin

22、s目录并创建一个svn.link(文件名任意)的文件。内容为:path=解压缩路径例如:path=E:javaIDEMyEclipse 8.5svn2、进入eclipse安装目录中links目录并创建一个svn.link(文件名任意)的文件。l中英文切换configuration/config.ini文件中添加以下语句1、osgi.nl=en_US 2、osgi.nl=zh_CN 高级软件人才实作培训专家高级软件人才实作培训专家!SVN与Apache整合1l下载Apache(http:/www.apache.org)l我们使用版本apache_2.2.14-win32-x86-no_ssl.m

23、sil测试安装成功:http:/localhostl打开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_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.sol找到Su

24、bversion安装目录下的以下两个文件bin/mod_authz_svn.sobin/mod_dav_svn.so复制到Apache安装目录下modules目录中高级软件人才实作培训专家高级软件人才实作培训专家!SVN与Apache整合2l使用Apache安装目录下的bin/htpasswd.exe可执行性文件来生成授权文件,第一次生成使用-cb参数:格式:htpasswd cb filename username password例如:htpasswd cb passwd.apache user1 pwd参数说明:-c 创建一个加密文件-b 在apache htpasswd 命令行中一并输

25、入用户名和密码而不是根据提示输入密码-m 默认apache htpasswd 命令采用MD5算法对秘密进行加密-d apache htpasswd 命令采用CRYPT算法对密码进行加密-s apache htpasswd命令采用SHA算法对密码进行加密l将生成的passwd.apache文件移动到svn版本库中conf目录下高级软件人才实作培训专家高级软件人才实作培训专家!lapache安装目录下的confhffpd.conf文件的最后面加入#配置虚拟目录#引用远程访问模块DAV svn#项目版本库路径SVNPath E:/software/repository/svn/bbs#授权文件Aut

26、hzSVNAccessFile E:/software/repository/svn/bbs/conf/authz#所有用户都需要身份验证Satisfy AnyRequire valid-user#验证方式AuthType Basic#项目的名称AuthName“bbs“#用户文件AuthUserFile E:/software/repository/svn/bbs/conf/passwd.apachel访问方式http:/localhost/svn/itcast高级软件人才实作培训专家高级软件人才实作培训专家!使用SVN注意事项l经常更新:降低冲突的可能性l提交前需要在本机测试通过,降低将问

27、题代码传到版本库l提交时一定写备注,方便其他员工查看和自己以后回顾l对于不需要提交的文件不要提交到版本库高级软件人才实作培训专家高级软件人才实作培训专家!CVSlCVS安装下载CVS服务器(http:/ cvsnt-server-2.5.04.3510.msi默认端口:2401lCVSNT用户使用win系统账户,即在服务器上创建win系统用户(注意权限安全)即可,这样每个仓库都可以使用服务器的系统用户登录管理高级软件人才实作培训专家高级软件人才实作培训专家!高级软件人才实作培训专家高级软件人才实作培训专家!CVSNT界面说明lServer Information,用于查看服务器信息以及一些简单

28、的统计信息lRepository configuration,配置CVS仓库,包括添加、删除、修改等lServer Settings,配置服务器运行的一些参数,如端口、加密、压缩等选项lCompatibility Options,兼容性选项lPlugins,插件配置lAdvancedlAbout,管理cvsnt服务的状态。暂停或启动cvsnt和cvsnt lock服务。高级软件人才实作培训专家高级软件人才实作培训专家!CVS创建用户1l使用系统用户绑定到当前的CVS项目上格式:set cvsroot=:pserver:lenovo127.0.0.1:/bbsc1、cvs login 登录并输入

29、系统用户密码2、例如:cvs passwd-a-r lenovo itcast-a Add user-r Alias username to real system user 在/CVSROOT文件夹下将会生成passwd文件高级软件人才实作培训专家高级软件人才实作培训专家!CVS创建用户2lCVSROOT目录下,新建文件并命名为passwd.在该文件里添加如下内容:格式:user4:administrator总共有三部分信息,用户名、密码、本地用户三部分之间使用冒号“:”来进行分割 用户名:就是登陆CVS的用户名 密 码:用户的密码,需要经过加密的,如果为空,那么就是空密码 本地用户:CVS

30、用户这个别名对应的本地用户,(跟本地用户没有任何其他关系,仅仅是别名的关系)l在passwd文件的相同目录下继续新建文件并命名为admin.将上诉user4用户加入文件中 l同一目录下找到checkoutlist文件并去掉只读属性,在文件内追加一行,内容为admin.之后可恢复只读 l修改同一目录下config文件的SystemAuth=no(注意要去掉).至此,直接使用CVS自己的帐户即可登陆 高级软件人才实作培训专家高级软件人才实作培训专家!CVS创建用户3lCVSROOT目录下,创建一个文件:passwd l内容:user5:administratorl命令行:cvs-d:pserver

31、:user5localhost:/android passwd高级软件人才实作培训专家高级软件人才实作培训专家!Subversion目录规范l创建三个顶级目录/trunk 存放开发的“主线”/branches 存放支线副本/tags 存放标签副本,并且不能修改高级软件人才实作培训专家高级软件人才实作培训专家!SVN相关软件介绍lsubversion命令行客户端svn是正式的subversion客户端程序。为了那些有兴趣发展subversion客户端的人们,subversion作成一系列的链接库,这些链接库除了可以通过C API存取外,还可被其他语言使用。名称语言可移植性授权网址PapidSVNC+是,原生widgetApache-stylehttp:/rapidsvn.tigris.orgGsvnPython仅Unix,非原生widgetGPLhttp:/gsvn.tigris.orgTortoiseSVNC+仅 winGPLhttp:/tortoisesvn.tigris.orgSvnupJava,JNI bindingsYesApache-stylehttp:/svnup.tigris.orgJsvnJava,包装svn命令行客户端YesAcademic Free Licensehttp:/

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(版本控制课件lt.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|