已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6讲 版本控制管理工具 1 2 本章目标 学习SVN常用指令理解SubVersion权限管理所使用的3个文件了解TortoiseSVN通过不同的图标识别文件的版本状态掌握TortoiseSVN菜单的常用功能 3 本章内容 6 1SubVersion6 2TortoiseSVN 4 本章内容 6 1SubVersion6 2TortoiseSVN 5 6 1SubVersion SubVersion简称SVN 是一个非常强大的文档版本管理工具 具有和VSS CVS基本相同的功能 SVN用于文档版本管理最为合适 因为它的使用方法非常接近于用户日常使用文件夹来管理文档的习惯 不过SVN没有图形化界面 需要使用控制台程序来运行 6 6 1SubVersion SubVersion和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的地位 11 CVS和Subversion的比较 12 Subversion与CVS相比改进的地方 统一的文件版本目录控制 在Subversion中目录的变更也是受控的支持文件复制 重命名事务性的提交高效的分支和标记扩展能力 Subversion提供了一组API 可以供其他语言直接调用 13 使用上的主要不同 Subversion的版本号是所有文件共用一个版本号 每一个个文件的改变都会导致总体版本号发生改变 Subversion的分支 标签都以文件夹的方式显示 而不象CVS只是一个独立的标签 当作为Apache的WebDAV使用时 Subversion使用Http协议传输 可以直接在Web浏览器中浏览 14 Windows平台Subversion服务器端的安装配置 安装程序从http subversion tigris org获取 在Windows平台直接执行安装程序进行安装 两种安装方式 方式一 类似CVS 作为独立服务运行 安装完成后运行如下命令运行Subversion svnserve d rD SVNStore 可以使用第三方的工具将Subversion添加为Windows的Service 参见http clanlib org mbn svnservice 方式二 将Subversion添加为Apache的WebDAV运行 这种方式对于Subversion的控制和管理比较方便 但是配置相对比较麻烦 建议 个人使用或者对权限控制等要求不高时以独立服务的方式使用Subversion 当团队开发时使用WebDAV的方式使用Subversion 15 Subversion客户端TortoiseSVN的安装和设置 获取安装文件从下载 安装直接安装 安装完成后会自动集成在资源管理器的右键菜单中 注意事项 安装时 ASP HACK 的选择 如果做ASP Net开发 安装时一定要选择该项 设置主要设置 语言全局忽略模式差异查看工具和合并工具文件叠加图标右键菜单 外观样式 16 Subversion相关软件 服务器端 支持多种操作系统客户端 Subversion命令行程序RapidSVN 独立的Windows程序 最新版本0 92 仍处于Beta阶段 TortoiseSVN 和资源管理器完美集成 基于TortoiseCVS的代码开发 使用上和TortoiseCVS极为相似 AnkhSVN 和VisualStudio集成 可以在VisualStudio中使用Subversion 仍处于开发过程中 最新版本0 60Beta 功能尚不完善 Web浏览器 ViewCVS WebSVN等 网络程序 可在浏览器中查看SVN信息 17 Subversion的基本概念 Repository 文件仓库 Workcopy 工作复本 Checkout 取出 Commit 提交 Update 更新 Revision 修订版本 Tag 标签 Branch 分支 Conflict 冲突 18 Subversion的基本操作 主要操作 在服务器端创建文件仓库从SVN文件库中取出代码把本地文件添加到文件仓库中从SVN中删除文件文件 目录改名提交修改后的文件更新本地文件比较不同版本的文件创建标签创建分支查看版本分支图 19 6 1SubVersion 6 1 1SVN常用指令6 1 2SVN权限管理 20 6 1 1SVN常用指令 1 SVNAdmincreate根据公司实际需要并按照软件配置管理计划 创建所需要的SVN文档数据库 比如 SVN开发库和SVN基线库等 例如 svnadmincreated myrepository 21 6 1 1SVN常用指令 2 SVNserve当用户创建SVN文档数据库以后 应该先启动该数据库然后再进行其他操作 该命令就是启动SVN数据库的重要指令 有很多参数可以使用 输入 help指令可以查看其参数列表 例如 svnserve helpsvnserve d rg svnrep 启动g盘上的名为 svnrep 的SVN数据库 22 23 6 1 2SVN权限管理 1 svnserve conf 定义了SVN权限管理的策略2 passwd 定义了访问SVN数据库的用户名和密码3 Authz 定义了SVN数据库中各目录结构的权限 以及用户组的信息 24 6 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 定义用户对数据库文件只有读权限 25 6 1 2SVN权限管理 2 passwd 定义了访问SVN数据库的用户名和密码该文件记录了SVN数据库授权用户的登录名和密码 users 标签下定义了用户名和密码 等号前面的是用户名 后面的是密码 26 6 1 2SVN权限管理 3 Authz 定义了SVN数据库中各目录结构的权限 以及用户组的信息 groups 标签下定义了用户组 前面加 用于区分用户名 用户组等号后面是成员列表 用逗号隔开 定义文档目录的路径 如 代表根目录定义用户对目录的访问权限 例如 Myproject Jim r表示Jim可以读该目录Jack 表示Jack不可以访问该目录 27 本章内容 6 1SubVersion6 2TortoiseSVN 28 6 2TortoiseSVN TortoiseSVN是配合SVN使用的客户端工具 它的工作方式和日常使用文件夹保存文档的习惯相同 TortoiseSVN实现了SVN的全部指令 弥补了SVN缺少图形化操作界面的不足 SVN Subversion 简易入门教程 doc 29 6 2TortoiseSVN 建立SVN数据库以后 在客户端需要使用SVNCheckout命令检出 在SVN控制下的每一层目录中都有一个隐藏的文件夹 当用户在客户端SVN文件夹中对文档进行变更 这些变更信息首先存放在这个隐藏文件夹里 只有当用户执行Commit操作时 才从隐藏文件夹里读取文档变更的信息 并更新SVN服务器端的数据 30 TortoiseSVN使用的不同文件状态的图标 在本地新建文件 将本地文件添加到SVN数据库 未提交 处于正常状态的文件 处于修改状态的文件 被锁定的文件 31 TortoiseSVN常用功能 1 Createrepository该功能代替SubVersion的SVNServe指令来创建一个SVN数据库 SVN提供2种数据库类型用于存放文档 一种是效率更高的FSFS类型 另一种是较老但更稳定的BerkeleyDatabase BDB 作为版本数据库的后台 32 TortoiseSVN常用功能 2 Import初始化导入数据在你要导入到SVN数据库的文件夹内右键点击 TortoiseSVN Import URLofrepository输入相应的SVN数据库地址 点击OK完成之后目录没有任何变化 如果没有报错 数据就已经全部导入到了我们刚才定义的数据库中 Export 可以把SVN数据库里的数据导入到指定的目录里 33 TortoiseSVN常用功能 3 SVNCheckout将本地目录与SVN数据库对应目录关联起来 并且更新SVN数据库中的文档到本地目录 用户第一次连接SVN数据库时需要使用该功能 34 TortoiseSVN常用功能 4 Add将本地目录或者文件添加到SVN数据库中 在本地SVN相应目录下创建一个文件或者目录 右键选择该文档或目录并点击 Add 菜单 该文件状态转为 Add图标 此时该文件并没有真正提交到SVN数据库 当右键选择该文件 点击 SVNCommit 菜单 才正式向SVN数据库提交该文件 35 TortoiseSVN常用功能 5 SVNUpdate获取SVN数据库中最新文档 相当于VSS中的 GetLatestVersion 功能 右键点击SVN客户端相应目录 并选择 SVNUpdate 菜单 弹出的对话框里会显示有哪些文件已经被更新到客户端 36 TortoiseSVN常用功能 6 Revert在进行 Commit 之前 该功能可以取消对本地SVN数据库文档所做的任何改动 就像很多工具的 Undo 功能一样 右键选择某个修改后的文档或者某个文件夹 点击 Revert 菜单 在弹出的对话框里勾选需要进行还原的文档列表 相应的文档将被还原 37 TortoiseSVN常用功能 7 ShowLog可以查看SVN数据库中文档变更的历史记录 右键点击某个文档 选择 ShowLog 菜单 弹出该文档历史变更信息的列表 38 TortoiseSVN常用功能 8 UpdatetoRevision追溯文档版本变更的历史记录 并可以获取之前任意版本的文档 右键选择某一文件点击 Updatetorevision 菜单 在弹出提示框里点击 ShowLog 按钮 选择需要还原到的版本 点击 OK 返回的提示框里Revision显示对应的版本号 点击 OK 即可还原到相应的历史版本 39 TortoiseSVN常用功能 9 Rename对SVN数据库中的文档或目录进行重命名操作 该操作原理是将原文件复制一份并用新名称进行命名 然后将原文件进行删除 右键选择某一文档 点击 Rename 菜单 进行重命名后 点击 Commit 菜单 即更新SVN数据库里的文档 40 TortoiseSVN常用功能 10 RevisionGraph将文档之间的演变关系生成图表 使用户更清楚文档的变更过程 右键选择某个文档 点击 RevisionGraph 菜单 弹出对话框显示文档之间的关系 再右键点击某个版本图例 选择 ShowLog 菜单可以查看该版本的历史信息 41 TortoiseSVN常用功能 11 GetLock为文档加锁 保护该文档不被其他用户修改 右键某个文档 点击 GetLock 菜单 弹出对话框显示哪些文件将被加锁 并输入加锁理由 对自己锁定的文档 还可以右键点击 ReleaseLock 进行解锁 42 TortoiseSVN常用功能 12 Diff修改完本地文档 未进行 Commit 操作 该功能可以对比本次修改的内容与修改前有什么不同 43 TortoiseSVN常用功能 13 Delete删除本地文档或目录 该功能并没有真正删除文档或目录 只有再点击 Commit 菜单 才删除SVN数据库中对应的文档或目录 44 TortoiseSVN常用功能 14 ClearUp更新客户端与服务器端的文档版本一致 当客户端文档版本与服务器不一致时 会使用黄色感叹号图标进行标示 用户可以使用 ClearUp 功能将客户端与服务器端更新一致 45 TortoiseSVN常用功能 15 Settings配置TortoiseSVN工具的系统参数 46 在项目开发过程中的使用 一 管理员安装 配置SVN服务器 设置用户信息 创建文件库 模块 用户开始在SVN上工作 并随时将新的工作结果提交到SVN文件库上 同时用户随时更新自己本地的工作复本 以获得其他人的修改 当开发工作进行到一定阶段 里程碑 要发布版本 包括测试版本 时 在SVN中创建标签 标识当前发布版本的名称 如果有每日构建过程 可以按照日期每天创建一个标签 47 在项目开发过程中的使用 二 创建标签和开发互不干涉 开发工作可以继续进行 当已发布的版本发现Bug时 可以从SVN中获取各次发布的版本进行比较 以确定是在什么版本引入的Bug 如果正在开发新版本时 发现旧版本存在Bug 可以在旧版本的基础上创建分支 在分支上修改旧版本的Bug 当旧版本上的Bug修改完成后 可以将该分支上的修改合并到主版本上来 从版本控制的角度来看 系统的开发过程就是不断地重复以上的过程 48 SVN使用中的常见问题 提交时提示文件已经被修改 需要更新 原因 多人同时修改同一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园林景观施工技术应用方案
- 清淤换填工程操作方案
- 坑塘清淤项目施工执行方案
- 外墙涂料翻新涂刷方案
- 桥梁基础施工监测与控制方案
- 旧厂房加固施工方案
- 高处作业安全专项施工实施方案
- 路基强夯地基施工管理方案
- 灰土挤密桩地基加固施工方案参考
- 扬尘控制方案
- 古代军事策略与智慧战略
- 机电2023年江苏职教高考文化综合理论试卷
- 乳腺癌患者的术后护理
- 鲁教版六年级英语单词表
- 企业注销申请书模板
- 2023广东深圳市农业科技促进中心选聘职员1人笔试历年难、易点深度预测(共500题含答案解析)模拟试卷
- 普通地质学教材
- 当前宏观经济形势及政策走向
- 明儒王龙溪的一念工夫论
- 宗教的本质及社会功能课件
- 纳米材料合成方法-很全教材课件
评论
0/150
提交评论