《svn培训ppt教程》由会员分享,可在线阅读,更多相关《svn培训ppt教程(43页珍藏版)》请在金锄头文库上搜索。
1、目 录,为什么需要使用配置管理软件 SVN相关的基本概念 TSVN的使用流程及图标说明 TSVN基本功能的介绍 常见问题,使用配置管理的理由,及时了解团队中其他成员的进度。 轻松比较不同版本间的细微差别; 记录每个文件成长的每步细节,利于成果的复用(reuse); 资料共享,避免以往靠邮件发送文件造成的版本混乱; 人人为我,我为人人。所有成员维护的实际是同一个版本库,无需专人维护所有文件的最新版本; 协同工作,大大提高团队工作效率,无论团队成员分布在天涯还是海角;,SVN基本概念,配置库( Repository ) SVN的核心是配置库,储存所有的数据,配置库按照文件树形式储存数据包括文件和目
2、录,任意数量的客户端可以连接到配置库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。 最特别的是 Subversion 会记录配置库中的每一次更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。,SVN基本概念,工作副本(WorkSpace) 与位于中央配置库相对应的是每个人的工作空间,它是每个程序员工作的地方,程序员从配置库拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行、测试等操作,并把新版本的代码从这里提交回配置库库中。,SVN基本概念,Checkout,Commit,SVN的工作模式,复制-修改-合并方案(Su
3、bversion默认的模式) 在这种模型里,每一个客户读取项目配置库建立一个私有工作副本版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。 锁定-修改-解锁方案 在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。,TortoiseSVN的安装,需要安装客户端 安装完毕后,在“资源管理器”里点击右键,会有如下菜单出现:,TSVN的使用基本流程,SVN使用图标说明,一个新检出的工作副本使用绿色的对勾表示Subversion状态 正常
4、. 当我们开始编辑一个文件后,图标将变成红色感叹号。通过 这种方式,可以很容易地看出我们对哪些文件进行了修改操 作,但是还没有提交到版本库中; 如果在提交的过程中出现了冲突,图标将变成黄色感叹号。 如果我们拥有了一个文件的锁,并且Subversion状态是正常, 这个重载图标将提醒我们:如果不使用该文件的话,请进行 释放锁操作,允许其他成员提交对该文件的修改。,SVN使用图标说明,这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。 加号告诉我们有一个文件或是目录已经被计划加入版本控制。,CheckOut(检出),作用:将版本库中的内容检出
5、到本地工作副本 步骤: 1.新建一个空文件夹; 比如:E:Proj_trunk 2.在此目录中点击右键- SVN Checkout.,CheckOut的注意项,检出深度: 1.全递归(默认选择) 检出完整的目录树,包含所有的文件或子目录。 2.直接节点,包含目录 检出目录,包含其中的文件或子目录,但是不递归展开子目录。 3.仅文件子节点 检出指定目录,包含所有文件,但是不检出任何子目录。 4.仅此项。 只检出目录。不包含其中的文件或子目录。,省略外部引用:如果项目含有外部项目的引用,而这些引用我们不希望同时检出,请选中忽略外部项目复选框。如果选中了这个复选框,更新的时候要使用命令”更新至版本U
6、pdate to Revision.”,Update(更新),作用:更新工作副本使其成为版本库中的最新版本 SVN将显示出更新的文件和更新的次数,Commit(提交),对工作副本进行编辑后提交到SVN 在右键菜单中点击SVN Commit 提交前写好信息,点击确定,权限控制,当进行提交文件操作的时候您将看到权限提示信息 输入您的用户名和密码 保存权限设置(见红圈) ,可以避免将来重复输入用户名和密码,如何删除认证数据,步骤:点击右键 选择设置 以保存数据 清除认证数据,Show log (显示日志),日志信息填写规则,好的日志信息和糟糕的日志信息 日志信息主要记录的是每次的修改内容。建议把一些
7、重要数据、关键操作写到日志信息中。 注:修改人和提交时间由软件自动记录,无需人工写入日志信息,如何得到历史版本,工作副本右键显示日志选择所需的版本号保存版本至,Revert(还原),作用:撤销本地所有未提交的修改 注意:还没有执行Commit操作之前执行此命令才可以,否则无效,ADD(添加),选中文件/文件夹(在新文件/文件夹所在父文件夹点击右键), 在菜单中选择“添加Add”命令。不需要受SVN控制的文件请取消打钩。,Add to Ignore List (忽略文件),添加忽略文件 右键一个单独的未进入版本控制文件TortoiseSVN (加入忽略列表)Add to Ignore List,
8、会出现一个子菜单允许你仅选择该文件,或者所有具有相同后缀的文件。 删除忽略文件: 如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择TortoiseSVN 从忽略列表删除。 已进入版本控制的文件或目录不能够忽略,Switch(切换),文件创建分支后,可通过Switch选择在主干工作或者在分支工作; 注意: (1)切换操作起来就象更新,因为它没有丢弃我们在本地做的修改。 (2)在工作副本里,当我们进行切换的时候,任何没有提交过的修改都会被混合。 解决方法: 1)在切换前提交修改; 2)把工作副本恢复到一个已经提交过的版本(比如最新版本)。,合并,假设我们在分支上进行修改:添加一条输出语句
9、: System.out.println(“测试是否能将分支的修改合并到主干中!”) ;提交到配置库中,现在执行将分支合并到主干的操作,分支合并到主干,右键主干的文件选择合并,合并时出现冲突,编辑冲突,冲突已解决,合并成功,常见错误,冲突 权限不足 锁死,冲 突,什么是冲突 冲突产生的原因 冲突产生的时机 解决冲突 关于避免冲突的建议,什么是冲突,冲突是指 团队协同工作时,当多位团队成员同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况,冲突产生的原因,产生原因 当团队协同工作的时候,多位团队成员同时操作一个文件。团队成员A操作完成后,将该文件提交到SVN
10、上。此时,其他团队成员的本地文件与SVN上的文件版本不一致。当团队成员B操作完成并对文件进行提交操作时,就会产生冲突。,冲突的提示页面,提交时产生的冲突,冲突的解决方案,遇到冲突时,需要update该文件。我们将看到三个带问号的文件 filename.mine filename.rOLDREV filename.rNEWREV 面对文件冲突,我们可以选择以下两种方式解决冲突 使用工具解决冲突 用revert放弃所做的修改,使用工具解决冲突,使用自带工具,如图所示 对比两个版本的文件,解决冲突 工具中会列出两个版本冲突的部分,并让我们选择使用哪个版本的内容,用revert放弃所做的修改,选择SV
11、N还原(revert) 放弃自己所做的修改,解决冲突后,通过上面所说的方法,解决冲突后要选择已解决的(resolved) 解决后,带问号的三个文件将自动删除 最后选择commit提交到SVN,关于冲突的建议,修改文件之前,先进行一次update操作 修改完成后,及时commit,不要在本地停留过长时间 在多位团队成员协作时,尽量修改自己撰写的部分,尽量不要修改不属于自己撰写的部分 出现冲突很正常,可以通过前面的方法解决,不要相互覆盖,权限不足,通常SVN在更新或者获取是提示代码为”403”的错误是表示权限不足 因为SVN授权是按照目录授权,所以在配置库地址错误的情况下也会出现“403”错误提示
12、。 如排除配置库地址错误,则是权限不足,可以通过项目经理进行权限申请获得该目录权限。 注意:申请权限的时候可以参考模板“CM008_配置库授权信息表”进行申请。,锁死,导致锁死的原因 错误的操作导致SVN控制文件混乱 系统中毒导致SVN控制文件受损 其他原因,解决锁死,解决锁死的最简单的办法是将本地工作副本删除然后重新获取。不过由于种种原因,可能在工作副本中存在大量工作未提交,所以删除会导致这些工作的返工,所以这里提供几个方法解决该问题。 SVN提供的clean up功能,执行以后可以排除某些错误操作引起的锁死。(注意,应该在被锁死的目录的上级目录进行clean up) SVN的切换功能,这个功能其实是在比对两个分支的不同,并更新到所切换的分支,所以可以对同一路径进行切换,这样就能顺利更新为最新的版本。,其他SVN的功能,Export(导出) 导出你需要的文件,导出后不在受SVN控制;而checkout检出的文件仍受SVN控制; Import(导入) 将需要的文件导入到版本库中; Relocated(重新定位) 当服务器上的版本库目录已经改变,我们可以把工作复本重新定位; CleanUp(清理) 递归的清理工作副本,删除锁定和保留的未完成操作,如果你得到工作副本已经锁定的错误,运行这个命令删除无用的锁定,并将工作副本恢复到可用的状态;,