版本控制培训_第1页
版本控制培训_第2页
版本控制培训_第3页
版本控制培训_第4页
版本控制培训_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京传智播客教育 Subversion Tortoisesvn 版本控制培训讲师:1北京传智播客教育 内容提要版本控制概述Subversion、Tortoisesvn介绍Subversion服务端配置Tortoisesvn客户端GUI使用SVN与第三方整合(Eclipse、Apache)SVN版本控制的前身CVS讲述2北京传智播客教育 版本控制概述版本控制: 版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制深入程序员在团队配合中,如果你的项目没有版本控制:一、 代

2、码管理混乱。二、 解决代码冲突困难。三、 在代码整合期间引发BUG。四、 无法对代码的拥有者进行权限控制。五、 项目不同版本发布困难。.3北京传智播客教育 Subversion介绍Subversion:是一种开放源码的全新版本控制系统。是新一代的版本控制工具,由于其优于CVS的一些特点,得到了越来越多人的关注和使用,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支等功能,而且Subversion 还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion 不仅对传统的编程任务非常有用

3、,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。 在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件 CVS,在 CVS的功能的基础上有很多的提升同时也能较好的解决 CVS 系统的一些不足。4北京传智播客教育 5北京传智播客教育 SVN基本交互流程图6北京传智播客教育 SVN版本控制的管理思想 SVN 工作的的基本思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序这样,就好象只有一个人在 修改文件一样避免了冲突

4、每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 SVN 命令进行提交,由 SVN仓库管理员统一 修改这样就可以做到跟踪文件变化,冲突控制等等。 7北京传智播客教育 Subversion安装、配置 下载安装Subversion 配置Subversion(统一放在D:SVN)启动SVN 服务器(CMD、Service)CMD: svnserve . Service: sc create .8北京传智播客教育 Subversion安装、配置 配置Subversion建立SVN 单仓库(svnadmin create REPOS_PATH) db

5、目录:就是所有版本控制的数据存放文件。 hooks目录:放置hook脚本文件的目录。 locks目录:用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端。 format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。 conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)。9北京传智播客教育 Subversion安装、配置 配置Subversion在将数据导入到仓库之前,你必须先想好如何组织存放你的数据。如果你使用一种我们推荐的规划方式,你将在以后的使用中感觉到很舒服。我们这里有很多种标准的推荐仓库组织形式。大多数人会创建一个trunk目

6、录来存放开发的“主线”,一个branches目录来存放支线副本,另外还有一个tags目录来存放标签副本。假如一个仓库只保存一个项目,经常会创建这样的几个顶级目录:/trunk/branches/tags(这只是个建议性的规范说明,你不按说明来办事也不会怎么样,svn照样工作得很好)10北京传智播客教育 Subversion安装、配置 配置Subversion建立SVN 单仓库(svnadmin create REPOS_PATH)建立SVN 多仓库(仓库建立方式与单仓库一样,只是目录仓库结构有所变化)配置仓库权限(结合客户端一起讲)authz passwd svnserve.conf更多的关于

7、SVN服务端命令的使用请参照SVN官方文档11北京传智播客教育 SVN客户端(Tortoisesvn)介绍Tortoisesvn:是SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端。在2002年,Tim Kemp 发现 Subversion 是一个很好的版本控制系统,但是没有好的图形化客户端,于是创建了一个专门为 Windows 外壳集成的 Subversion 客户端;创意来自 TortoiseCVS;12北京传智播客教育 SVN客户端(Tortoisesvn)官网TortoiseSVN安装包链接地址:360安装卫士软件宝库汉

8、化语言包链接地址:http:/downloads(Language packs)安装完上述两个文件后,重启电脑(explorer.exe)。如果鼠标右键中出现下列菜单,就表示安装成功。13北京传智播客教育 SVN客户端(Tortoisesvn)14北京传智播客教育 Subverson、Tortsesvn介绍档案库浏览器(Repo-browser)鼠标右键-TortoiseSVN-版本库浏览器输入版本库URL地址,进入如菜单界面:版本库浏览器支持svn及http等多咱常用的通信协议。15北京传智播客教育 SVN客户端(Tortoisesvn)创建版本库、导入、检出创建版本库右键-Tortoise

9、SVN-Create repository here导入右键-TortoiseSVN-导入(一般在项目创建初始化数据时使用,当然也可用于把任意文件或目录从外部导入到指定仓库中)检出 checkout(提醒:检出项目后客户端文件夹的变化.svn) 右键-SVN Checkout.增加右键-TortoiseSVN-Add更新右键-SVN Update提交右键-SVN Commit.16北京传智播客教育 SVN客户端(Tortoisesvn)这张图代表使用Tortoisesvn客户端时文件及目录受版本控制的各种状态。17北京传智播客教育 TortoiseSVN技巧小贴士表示此文件或文件夹与仓库版本同

10、步,本地也没有被修改过。表示此文件或文件夹在本地被修改过,暂时还没有提交到SVN仓库中。在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。如果在提交的过程中出现了冲突图标变成黄色感叹号。(权限)如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。(权限)如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人

11、提交对该文件的修改。(权限)这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。加号告诉你有一个文件或是目录已经被计划加入版本控制。18北京传智播客教育 SVN客户端(Tortoisesvn)版本冲突的问题并行修改(重点)并行修改造成版本冲突会生成4个文件的解决办法总结:1.项目开发分工明确|分模块开发|项目组各成员做到勾通方便且及时 2.做到项目组成员按时按量的及时同步版本控制仓库 3.强制性非常不友好的使用锁定功能19北京传智播客教育 SVN客户端(Tortoisesvn)SVN版本控制的权限配置authz (授权)passwd (认证

12、)svnserve.conf (SVN权限系统的桥接配置文件)练习项目版本控制实战公司分配给CRM项目组一共由3位员工进行开发 1.其中有二名员工具有整个项目的全部可读写权限 另一名员工只有读权限。 2.项目根目录下的doc文件夹要求只有admin这个用户有读写权限。3.练习时要求故意造成版本冲突(即并行修改同一文件),最终可自我解决此问题。20北京传智播客教育 TortoiseSVN基本功能日志记录、提交日志限定必填。清理操作/更新至特定版本锁定、解锁:最基本权限控制(可以限制锁定的文件只能由被锁定用户修改提交)误删除恢复操作:a)点击“还原” (误删操作,并且还没进行提交); b)日志记录

13、列表中还原。 c)直接重更新单个文件过滤:选中文件-TortoiseSVN-增加到忽略列表多个类型文件一样的文件过滤及清除密码文件或文件夹重命名21北京传智播客教育 SVN客户端(Tortoisesvn)其它仓库所在服务器地址发生改变(重新定位)文件差异比较(3种情况下比较)分支/标记(发布版本)导出:使项目脱离版本控制(即除去.svn文件夹)。项目管理实战:一个JAVA项目受SVN版本控制,其中要求按SVN约定成俗的方式把项目放在开发主干trunk分支下,兄弟目录tags用于存放项目发布的版本,按以下方式分别在本地客户端项目文件夹中操作,使之与SVN仓库进行数据交互。 1.自少执行3次以上C

14、ommit命令,并且要求写明每次提交的日志记录(日志必填)。 2.故意不小心在本地删除一个受版本控制的文件或文件夹,同时能做到使用3种不同的方式恢复数据。 3.用两种方式重命名一个受版本控制的文件或文件夹的名称(得出结论两种方式哪种效率更高)。 4.把SVN项目仓库移动到其它计算机上运行,此时客户端应该如何去重新关联定位到新的仓库地址。 5.在项目目录下修改一个文件并与它的上一个版本进行比较,查看本次具体修改了哪些内容。 6.做完以上工作之后,要求发布一个项目的1.0版本出来(tag-Export)22北京传智播客教育 SVN与第三方整合(Eclipse、Apache)EclipseApach

15、e(客户端即可使用http的方式访问仓库)23北京传智播客教育 SVN客户端(Tortoisesvn)SVN版本控制不神秘,就怕你不动手! 宝典相赠:TortoiseSVN帮助文档24北京传智播客教育 Subversion访问SVN服务器访问方式:25北京传智播客教育 Cuncurrent Versions System 版本控制培训之(CVS)26北京传智播客教育 CVS简介CVS - Concurrent Versions System(并发版本管理系统)是一个版本控制管理系统,它是SVN出现之前最为广泛使用的一个版本控制系统。CVS的优点就不多说了,总之没有它,早期的软件工程就基本无法实

16、现,就无法凝聚广大程序员的力量。它在软件工程中的作用实在是无可比拟的。 一直到现今的版本控制的主流SVN出现之后,它才慢慢的逐步淡出我们的视线。27北京传智播客教育 下载并安装CVS-Server下载CVS服务器网址为:,下载CVSNT 并安装,当前教学所使用的版本号为:cvsnt-server-2.5.04.3510.msi安装CVS服务器:28北京传智播客教育 CVSNT界面29北京传智播客教育 CVSNT界面Server Information,用于查看服务器信息及一些简单的统计信息;Respository configuration,配置CVS仓库,包括添加、删除等;Server Se

17、tting,配置服务器运行的一些参数,诸如端口、加密、压缩等选项;Capatiblity Options,有关兼容性的选项,在这里主要配置一个兼容非cvsnt客户端的版本响应为cvs 1.11.2;Plugins,插件配置,安装完成可以不用管的;Advanced,安装完成后也不用管了;About,在这里可以管理cvsnt服务的状态,停止或启动cvsnt和cvsnt lock服务。30北京传智播客教育 CVS-Server配置从零开始1。创建仓库(Ropository) 安装完成后,打开 “开始”菜单“程序” “CVSNT” “CVSNT Control Panel” 程序 ,打开cvs管理窗口

18、,选择“Ropository configuation”选项卡,单击“add”按钮添加仓库,location为仓库文件夹存放路径。选择一个预先存在的目录路径。Name会自动改为“/目录文件夹”! 这个名子也可以修改(仓库访问别名)。点击OK按钮,它会提示你“这个文件夹不是cvs仓库,是否初始化?”的英文提示。点击“是“。创建仓库完毕。 31北京传智播客教育 CVS仓库用户1.使用WIN系统帐户 CVSNT默认用户为windows系统用户,即在服务器上创建WIN系统用户(注意权限安全)及可,这样每个仓库都可以使用服务器的系统用户登陆管理。 2.创建CVS仓库自己的用户1).set cvsroot=:pserver:/oa (使用服务器系统用户绑定到当前的CVS项目上)2).cvs login (登陆,会提示你要求输入系统用户的密码)3).cvs passwd -a -r administrator lengyu (为项目oa建立一个用户lengyu 此用户同时映射服务器系统用户administrator)提醒:在pserver模式下,上面第3步新建立的用户一定要与系统用户进行绑定,这样cvs的客户端软件才可以通过此cvs用户连接CVS服务器。32北京传智播客教育 CVS客户端使用3.Eclipse客户端中CVS的使用33北京传智播客教育 CVS客户端使用4.CVS基本功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论