主流SCM工具的配置使用.pdf_第1页
主流SCM工具的配置使用.pdf_第2页
主流SCM工具的配置使用.pdf_第3页
主流SCM工具的配置使用.pdf_第4页
主流SCM工具的配置使用.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

主流SCM工具的配置使用.pdf.pdf 免费下载

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

文档简介

主流 SCM 工具的配置使用 Version1 0 商业智能软件开发三十七部 2010 年 9 月 30 日 II 目 录 1 软件配置管理概述软件配置管理概述 1 1 1 采纳SCM工具的重要性 1 1 2 主流SCM工具 1 2 SVN 2 2 1 SVN概述 2 2 2 安装SVN 3 2 2 1 下载SVN 3 2 2 2 安装SVN 3 2 3 配置SVN 7 2 3 1 导入演示项目 7 2 3 2 配置svn访问权限 10 2 4 TortoiseSVN 12 2 4 1 安装TortoiseSVN 12 2 4 2 使用TortoiseSVN 13 2 5 Eclipse IDE中集成SVN 30 2 6 备份SVN存储库 34 2 7 在SVN库中新增加一个项目 35 2 8 强制输入提交日志 36 2 8 1 hook脚本实现方式 37 2 8 2 文件夹属性实现方式 37 3 CVS 40 3 1 CVS概述 40 3 2 安装CVS 40 3 3 配置CVS 45 3 3 1 CVS用户管理 46 III 3 3 2 WinCVS 48 3 4 Eclipse IDE中集成CVS 53 3 5 备份CVS存储库 57 4 双版本库同步的解决方案双版本库同步的解决方案 58 4 1 问题概述 58 5 SCM最佳实践最佳实践 61 5 1 若干最佳实践 61 5 1 1 不要将SCM存储库当成垃圾回收站 61 5 1 2 原则上不要将编译成果存储到SCM存储库中 61 5 1 3 要做好SCM存储库的备份工作 61 6 参考资源参考资源 62 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 1 1 软件配置管理概述 软件配置管理 Software Configuration Management 又称软件形态管理 或软件建 构管理 软件配置管理包括建立基线和版本控制 界定软件的组成项目 对每个项目进行版 本控制 并维护不同项目之间的版本关联 以使软件开发过程中任一时间的内容都可以被追 溯 1 1 采纳SCM工具的重要性 代码 数据以及相关的说明文档是一个软件开发团队最重要的劳动成果 除了需要妥善 保存之外 还要保证所有的修改都被记录和追溯 同时要保证所有成员能够并发地工作而不 引起冲突 并拥有良好的沟通和合作 这一切都需要在团队中引入 SCM 系统 1 2 主流SCM工具 软件配置管理的概念在上世纪 60 年代末 70 年代初由加利福利亚大学的 Leon Presser 教授提出 并且在 1975 年注册成立了一家公司 开发出了最早的配置管理工具之一 Change and Configuration Control CCC 随着软件工程的发展 软件配置管理越来越成熟 从最初的仅仅实现版本控制 发展到 现在的提供工作空间管理 并行开发支持 过程管理 权限控制 变更管理等一系列全面的 管理能力 已经形成了一个完整的理论体系 同时在软件配置管理的工具方面 也出现了大 批的产品 如 最著名的 ClearCase 开源产品 CVS 和 Subversion 入门级工具 Microsoft VSS 新秀 Hansky Firefly CVS 和 SVN Subversion 都是开源的软件配置管理系统 都被大量的开源项目所采 用 并且大量的软件开发工具都集成了对 CVS 和 SVN 的支持 SVN 是作为 CVS 的替代品而诞生 保留了 CVS 的基本思想和开发模型 但没有 CVS 的错误和缺陷 他们足够相像 以至于任何熟悉 CVS 的用户都可以不费力气的转换到 SVN 而且已经采用 CVS 的项目可以通过工具轻易地转移到 SVN 系统 建议在项目中采用 SVN 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 2 2 SVN 2 1 SVN概述 Subversion 简称 SVN 是一个开放源代码的版本控制系统 相对于的 RCS CVS 采 用了分支管理系统 它的设计目标就是取代 CVS 互联网上越来越多的控制服务从 CVS 转 移到 Subversion SVN 有以下特性 统一的版本号 CVS 是对每个文件顺序编排版本号 在某一时间各文件的版本号 各不相同 而 Subversion 下 任何一次提交都会对所有文件增加到同一个新版本号 即使是提交并不涉及的文件 所以 各文件在某任意时间的版本号是相同的 版本 号相同的文件构成软件的一个版本 原子提交 一次提交不管是单个还是多个文件 都是作为一个整体提交的 在这当 中发生的意外例如传输中断 不会引起数据库的不完整和数据损坏 重命名 复制 删除文件等动作都保存在版本历史记录当中 对于二进制文件 使用了节省空间的保存方法 简单的理解 就是只保存和上一 版本不同之处 目录也有版本历史 整个目录树可以被移动或者复制 操作很简单 而且能够保留 全部版本记录 分支的开销非常小 优化过的数据库访问 使得一些操作不必访问数据库就可以做到 这样减少了很多 不必要的和数据库主机之间的网络流量 支持元数据 Metadata 管理 每个目录或文件都可以定义属性 Property 它是 一些隐藏的键值对 用户可以自定义属性内容 而且属性和文件内容一样在版本控 制范围内 支持 FSFS 和 Berkeley DB 两种资料库格式 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 2 2 安装SVN 2 2 1 下载SVN 到地址 新的版本是 1 6 12 默认的安装程序包括了SVN服务器和Apache服务器 2 2 2 安装SVN 下载完成之后进行安装 安装过程是我们比较熟悉的 对不太清楚的设置选项保持默认 值不要修改 直接 Next 选择要安装的组件 全部选择 配置 SVN Repository Path 是版本库的存放路径 需要注意磁盘上是否有足够的空间 而 且这个路径在下一步中还会用到 需要记下来 选择 Install svnserve to run as Windows service 会安装 SVN 服务 在系统启动的 时候自动运行 SVN 服务器 3 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 配置 Apache Repository Path 是版本库的路径 需要与上一步 SVN 设置的路径一样 勾选 Enable viewVC 选项可以让我们在浏览器中浏览版本库 但是需要 Python 运行 库的支持 如果有需要可以勾选 选择 Install Apache to run as a Windows service 会安装 Apache 为 Windows 系 统服务 随系统自动启动 4 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 如果上一步选择了 Enable viewVC 这一步会让你选择计算机上 Python 的安装路径 需要另外下载安装 否则会跳过这一步 选择 SVN 的安装路径 如果全部设置无误 点击 Install 就开始安装了 5 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 设置更新提示和是否需要代理 可以自行根据需要设置 最后是一个广告页面 到此安装过程就全部完成了 6 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 安装完成之后 在开始菜单已经安装了Subversion程序组 而且自带了一个svn book的 使用手册 该手册的中文版本在这里 前最新的只有 1 4 版本 打开系统服务 在运行对话框中输入 services msc 回车 会发现安装了如下两个系统 服务 其中 Apache 是通过 http 方式访问版本库必须启动的服务 svnserve 服务提供了另一 种通过 SVN 协议访问版本库的途径 我们这里不打算介绍 因此为了避免未经授权的通过 SVN 协议访问版本库 请禁用 svnserve 服务 注意 安装完成之后需要重新启动系统 否则 Apache 服务可能无法启动 2 3 配置SVN 2 3 1 导入演示项目 SVN 已经安装完成 首先我们要导入一个示例项目 这里我们的版本库位于 7 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 D svn repository 打开命令行窗口输入以下命令 D svn repository svn version svn version 1 6 12 r955767 compiled Jun 21 2010 16 00 59 Copyright C 2000 2009 CollabNet Subversion is open source software see http subversion tigris org This product includes software developed by CollabNet http www Collab Net The following repository access RA modules are available ra neon Module for accessing a repository via WebDAV protocol using Neon handles http scheme handles https scheme ra svn Module for accessing a repository using the svn network protocol with Cyrus SASL authentication handles svn scheme ra local Module for accessing a repository on local disk handles file scheme ra serf Module for accessing a repository via WebDAV protocol using serf handles http scheme handles https scheme 如果无法执行请确认路径 SVN 安装路径是否已经加入系统环境变量 Path 中 在路径 D svn repository 执行以下命令 D svn repository svnadmin create connectfour D svn repository 这 里connectfour是 我 们 的 演 示 用 的 项 目 如 果 执 行 成 功 会 在 D svn repository connectfour 目录下初始化如下文件结构 然后执行如下命令将源代码导入版本库中 8 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 D svn repository svn import m 导入项目 D temp connectfour file d svn repository connectfour trunk Adding D temp connectfour test Adding D temp connectfour test net Adding D temp connectfour test net sourceforge Adding D temp connectfour test net sourceforge cruisecontrol Adding D temp connectfour test net sourceforge cruisecontrol sampleproj ect Adding D temp connectfour test net sourceforge cruisecontrol sampleproj ect connectfour Adding D temp connectfour test net sourceforge cruisecontrol sampleproj ect connectfour CellTest java 其中 m 表示后边引号内的内容为注释 这在执行一些 svn 命令的时候是必须的 例如 提交代码 D temp connectfour 是演示项目源代码在磁盘上的位置 file d svn repository connectfour trunk 为演示项目在版本库中的绝对路径 trunk 目录 是为版本库的灵活扩展做准备 例如建立分支 简单的演示项目也可以不需要 例如直接使 用 file d svn repository connectfour 导入完成之后我们就可以在浏览器里访问代码库了 打开浏览器在地址栏中输 入http localhost svn connectfour trunk 可以看到connectfour项目的源代码了 9 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 10 2 3 2 配置svn访问权限 现在任何人如果需要都可以访问代码库了 这个在实际的开发项目中是很危险的 我们 需要为 SVN 设置访问权限 首先找到 Apache 的配置文件 SVN 安装目录 httpd conf httpd conf 使用文本编辑器打 开 在 116 行之后添加如下一行 LoadModule authz svn module modules mod authz svn so 然后定位到文件的最后 修改节点为如下所示内容 指定仓库的访问路径为 svn DAV svn 指定代码库父目录的路径 也可以指定单个库的路径 SVNPath SVNParentPath D svn repository 允许列出父目录 SVNListParentPath on 认证方式为基本认证 AuthType Basic 认证窗口的标题 AuthName Subversion Repository 用于认证的用户配置文件 AuthUserFile D svn repository passwords auth 用于认证的权限配置文件 AuthzSVNAccessFile D svn repository access auth 启用安全认证 Require valid user 修改完成之后保存退出 以上指定了用户和权限配置文件 现在在对应的目录建立相应 的配置文件 首先确保 SVN 安装目录 httpd bin 已经加入系统环境变量 Path 中 D svn repository htpasswd bc passwords auth admin admin Automatically using MD5 format Adding password for user admin D svn repository htpasswd b passwords auth dev1 dev1 Automatically using MD5 format Adding password for user dev1 D svn repository htpasswd b passwords auth test1 test1 Automatically using MD5 format 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 11 Adding password for user test1 其中参数 c 表示新建一个密码文件 参数 b 表示在命令行中输入密码代替密码提示 执 行完成之后打开passwords auth文件发现已经增加了三个用户 而且密码是经过md5加密的 然后通过文本编辑器新建一个文件access auth 输入以下内容保存 groups 列出所有的用户组 等号左边为组名 表示组名 等号右边为用户 admin admin dev dev1 test test1 everyone admin dev test 表示 everyon 组对所有模块有只读权限 everyone r 表示管理员组对所有模块有读写权限 admin rw connectfour 表示 dev 组对 connectfour 模块下所有目录有读写权限 dev rw 表示 test 组对 connectfour 模块下所有目录没有任何权限 test 配置完成之后访问http localhost svn connectfour trunk 在弹出的密码提示框输入密码才能访问 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 输入 test1 用户和密码 无权限访问代码库 至此 SVN 的配置已经全部完成 2 4 TortoiseSVN 以上的操作我们都是在命令行操作的 SVN 也有一些非常好用的客户端工具 其中的 代表有 TortoiseSVN TortoiseSVN 是免费的开源软件 提供了非常好的用户体验和强大的管 理功能 非常适合于在非 IDE 开发环境中使用 2 4 1 安装TortoiseSVN TortoiseSVN的下载地址是 1 6 10 如果 需要中文语言包也可以在该页面下载 TortoiseSVN 的安装过程比较简单 注意选择安装路径 其他的默认就可以了 安装完 12 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 成之后需要重启 TortoiseSVN 的常见操作都集成在右键菜单中 安装完成之后在文件夹的空白处单击右 键可以看到 TortoiseSVN 增加的菜单 2 4 2 使用TortoiseSVN 这里有在线的中文TortoiseSVN使用手册 1 5 版本 这一节主要介绍 TortoiseSVN 的日常操作 2 4 2 1 检出项目 在修改 SVN 服务器中的文件之前首先要将服务器的文件检出到本地 在本地的副本上 进行修改 然后提交到服务器 打开资源管理器 定位到要存放文件副本的目录 在当前文件夹的空白处单击右键 选择 SVN Checkout 菜单 在打开的对话框中 分别输入版本库的路径和文件副本的本地保存路径 检出深度 Checkout Depth 各选项的含义是递归检出所有子文件 检出当前目录下的文件 和文件夹 只检出当前目录下的文件 只检出当前选择项 最后是选择要检出的版 本 HEAD 指检出最新版本 也可以单击按钮选择要检出的 13 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 版本 如果要检出项目的子目录或者某个文件 而不是整个项目 可以直接输入子项目的 14 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 路径 或者单击 URL 之后的按钮 打开版本库浏览器 直接定位到要检出的项 目 设置完成之后 点击 OK 开始检出项目 从检出日志可以看到最新的版本是 revision7 检出了 30 个项目 检出的项目 文件的图标代表了文件当前的状态 15 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 TortoiseSVN 使用图标重载的技术来标识文件的不同状态 文件的状态不同 图标也不 同 TortoiseSVN 各图标的含义 一个新检出的工作副本使用绿色的对勾做重载 表示 Subversion 状态正常 在你开始编辑一个文件后 状态就变成了已修改 而图标重载变成 了红色感叹号 通过这种方式 你可以很容易地看出哪些文件从你 上次更新工作副本后被修改过 需要被提交 如果在更新的过程中出现了冲突 图标会变成黄色感叹号 如果你给一个文件设置了 svn needs lock 属性 Subversion 会让此 文件只读 直到你获得文件锁 具有这个重载图标的文件来表示你 必须在编辑之前先得到锁 如果你拥有了一个文件的锁 并且 Subversion 状态是正常 这个 重载图标就提醒你如果不使用该文件的话应该释放锁 允许别人提 交对该文件的修改 这个图标表示当前文件夹下的某些文件或文件夹已经被调度从版 本控制中删除 或是该文件夹下某个受版本控制的文件丢失了 加号告诉你有一个文件或目录已经被调度加入版本控制 这个图标表示这个文件已经加入了版本控制的过滤列表 被排除了 版本控制系统 这个图标可选 16 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 表示这个文件或者文件夹没有加入版本控制系统 也不在过滤列表 中 这个图标可选 2 4 2 2 编辑项目 项目的编辑是使用 SCM 过程中遇到的最多的操作 养成良好的操作习惯可以大大方便 我们的日常工作 这里的编辑除了修改文件还包括增加和删除文件 2 4 2 2 1 更新项目 在团队中工作 一个好的习惯是在开始工作之前 首先将本地的文件副本与服务器进行 同步 在最新的版本基础上开始工作 可以避免绝大部分的文件冲突 选择项目的根目录 单击右键选择 SVN Update 更新代码到最新版本 在更新结果对话框中 可以看到更新文件的详细信息 最新的版本是 revison7 没 有人提交更新代码 17 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 18 更新完成说明现在的文件已经是最新的版本 2 4 2 2 2 增加项目 定位到目录 新建一个文本文件 例如 newfile txt newfile 文件的图标表示还没有 加入到版本控制系统 右键单击 newfile txt 选择 Add 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 图标的变化表示 newfile txt 已经加入到 SCM 但是要提交到服务器其他的用户才 能够看到 再次右键单击 选择 SVN Commit 在弹出的对话框中输入日志信息 点击 OK 提交到服务器 19 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 日志显示当前的版本是 revision8 20 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 21 图标显示文件已经提交到服务器了 如果要新建一个目录 操作方式与新建文件完全一样 2 4 2 2 3 修改项目 找到上一步增加的文件 用文本编辑器打开 新增加一行 然后保存 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 文件的图标显示 这个文件已经修改 但是还没有提交 右键单击 选择 SVN Commit 提交到服务器 2 4 2 2 4 重命名项目 右键单击 newfile txt 选择 Rename 22 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 在弹出的对话框中输入新名称 图标显示新增加了一个新文件 代替了原来的文件 通过右键菜单提交到服务器 返回到上一级目录 父目录的图标显示 目录处于修改状态 右键单击父目录 选择 Check for modifications 查看修改的文件 23 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 24 在弹出的对话框中显示 删除的 newfile txt 还没有提交 我们可以看到重命名的过 程事实上包括了删除源文件和新增加文件两个步骤 右键单击父目录 提交修改 文件夹重命名的过程与文件操作相同 有些人在使用SVN过程中习惯在操作系统中进行文件重命名的操作 然后提交到SVN 这与通过 SVN 的 Rename 菜单进行重命名操作有和不同呢 我们可以做个比较 在刚才重命名之后的文件上单击右键 选择 Show log 显示文件的历史信息 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 25 在日志信息面板中 anotherfile txt 的日志信息中包括了 newfile txt 的全部历史 我们可 以看到在删除文件和新增文件过程中 SVN 已经将两个文件做了关联 在 SVN 看来他们实 际上是一个文件 而在操作系统中删除和新增是两个独立的操作 SVN 无法在两者之间进 行关联 也就丢失了重命名之前的文件的信息 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 26 因此 一定要在 SVN 中进行文件和目录的重命名操作 这样才能保留文件的全部历史 信息 2 4 2 2 5 删除项目 右键单击 anotherfile txt 选择 Delete 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 27 当前目录中已经删除了该文件 父目录显示为已修改状态 右键单击父目录 提交修改到服务器 目录的删除与文件的删除操作完全相同 2 4 2 3 撤销修改 常常因为各种疏忽 我们需要撤销已经做的修改 在已经修改过的文件或者目录上单击右键 选择 Revert 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 28 显示有一个文件删除了 勾选要取消的修改 点击 OK 删除的文件又找回来了 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 其他各种类型的修改都可以通过这种方式取消 但是注意重命名需要在 SVN 中进 行操作 2 4 2 4 重定位版本库 在部分情况下 尽管比较少见 由于 SVN 存储库的调整 主机或者访问路径的变化 我们本地的副本将无法与版本库同步 这种情况下有什么好的解决办法 一种办法是你可以从调整后的版本库 重新检出一份副本 再将本地修改的代码合并到 新的副本上 这种办法可以解决问题但是可能带来一些不必要的工作 另一种办法是使用重定位的功能 在本地副本的根目录上单击右键 选择 Relocate 重新输入新的 URL 地址 点击 OK 重定位到新的版本库 29 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 如果地址正确 就可以连接到新的版本库进行操作了 2 5 Eclipse IDE中集成SVN 对于经常使用Eclipse这样的IDE工具进行项目开发的人员 最好的方式还是使用与IDE 集成的SVN客户端 这里使用http subclipse tigris org 提供的Subclipse 它也是我们建议使 用的Eclipse SVN插件 官方标准版本的 Eclipse 没有自带 Subversion SVN 插件 请自行安装 启动 Eclipse 打开透视图对话框 找到并打开 SVN 资源库研究 透视图 30 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 在打开的透视图中找到 SVN 资源库 面板 在空白处单击右键 新建一个资源库 在打开的 添加 SVN 资源库 对话框中输入资源库的 URL 点击 Finish 31 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 32 在弹出的对话框中输入用户名和密码 并勾选 保存密码 点击 OK 新建一个资源 库 新建完成之后我们就可以看到资源库的文件 也可以打开文件直接查看文件内容 而且 还可以进行远程操作 我们可以看到每个文件名后边的数字是该文件的版本号 通过文件夹的属性信息也可以 看到文件夹的版本号 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 通常在团队开发过程中 我们无法直接在资源库进行文件的修改 我们需要检出一份拷 贝到本地 在完成一阶段的开发任务后 例如修复一个缺陷 再将代码提交到资源库 在要 导出的文件或者文件夹上单击右键 选择 检出为 菜单 在打开的菜单中选择 作为工作空间中的项目检出 并输入项目的名称 点击 Finish 检出项目到工作空间中 33 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 34 打开 java 透视图 我们看到工作空间中已经多了一个新项目 下一步我们就可以在检出的副本山启动开发工作了 2 6 备份SVN存储库 一般来说建议在代码库中每个模块只存储一个项目的代码或者文档 这样在备份项目资 料的时候只需要备份对应的目录 而不用备份整个代码库 SVN 的备份最简单有效的方法就是将项目所在模块的目录压缩存档 而恢复的时候只 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 35 需要将存档解压重新替换损坏的代码库即可 需要注意的是不要忘了同时备份用户和权限配置文件 这也是代码库的重要组成部分 2 7 在SVN库中新增加一个项目 在大多数的情况下下我们可能并不需要从零开始安装并配置 SVN 而是在已经使用的 SVN 代码库中增加一个新项目 新增加一个新项目包括以下步骤 1 新建代码库 2 规划代码库目录结构 3 导入基线代码 4 配置项目访问权限 以下是详细的步骤说明 新建代码库 启动一个命令行终端 定位到已经运行的版本库目录 例如 D svn repository 执行以 下命令 D svn repository svn create cds gddb 规划代码库目录结构 项目的结构规划非常重要 因为在项目的开发过程中 根据项目的进度经常会遇到建立 分支 打标签 合并代码等操作 而且版本库一旦建立 再修改的话就比较麻烦 因此 提前规划项目的结构非常重要 常见的做法是在项目的根目录新建三个文件夹 目录结 构如下 Project 项目根目录 branches 存放代码分支 tags 存放标签版本 trunk 存放代码主干 根据上一步规划的目录结构 将基线代码和初始文档都按照以上目录结构组织好 执行 以下命令导入初始代码和文档 D svn repository svn import m import files D cds gddb file d svn repository cds gddb 其 中 D cds gddb 为 项 目 的 原 始 文 件 在 本 地 磁 盘 的 存 放 位 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 36 置 file d svn repository cds gddb 为以上第一步新建的代码库地址 配置项目访问权限 首先为新项目组的成员新建 svn 访问帐号 找到 svn 密码文件 执行以下命令 首先确 保 htpasswd exe 所在路径 例如 SVN 安装目录 httpd bin 已经加入系统环境变量 Path 中 D svn repository htpasswd b passwords auth user1 user1 Automatically using MD5 format Adding password for user dev1 passwords auth 为密码文件 可以使用相对或者绝路路径 重复执行以上命令为所有的 项目组成员建立帐户 用文本编辑器修改 SVN 权限文件 增加如下内容 为项目组成员赋予访问权限 groups admin admin 增加 cds 项目的开发和测试人员 需要在密码文件中建立了用户 cds dev dev1 dev2 cds test test1 test2 cds gddb cds dev rw cds test rw admin rw cds gddb code tags tags 目录不允许非管理员提交代码 cds dev r cds test r 通过以上建立的用户我们就可以在浏览器中访问版本库或者检出代码到本地开始开发 工作了 2 8 强制输入提交日志 在向 SVN 提交文件时输入日志以记录修改的内容是个很好的习惯 除了经常提醒项目 成员这么做之外 在技术上进行强制执行可以更好的做到这一点 强制输入提交日志 并限制日志的长度有两种实现方式 一种是在服务器端通过 hook 脚本实现 这种方式整个版本库共用一个脚本 方便实施 但是需要到服务器端进行验证 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 37 另外一种方式是设置文件夹的属性 这种方式会在客户端进行检查 用户体验好 例如在 TortoiseSVN 提交文件时 输入的日志长度不满足 提交按钮以灰色显示 是无法提交的 但是这种方式依赖于具体的客户端软件 在某些低版本的 Eclipse 插件客户端中可能不会进 行检查 以下分别介绍两种实现方式 2 8 1 hook脚本实现方式 在目录 SVN ROOT hooks SVN ROOT 只版本库根目录 下新建一个文本文件 命 名为 pre commit bat 内容如下 echo off set REPOS 1 set TXN 2 svnlook log REPOS t TXN findstr nul if errorlevel gtr 0 goto error exit 0 error echo 注释至少要包括 10 个字符 请重新提交 2 exit 1 这个脚本是通过事件促发 pre commit 表示在提交动作执行之前进行检查 如果检查失 败会返回 error 部分的提示信息 并需要用户重新提交 10 个小红点表示匹配任意的十个字符 可以根据需要调整长度 但是不要忘了修改提 示信息 脚本文件以事件的名字命名 实现方式可以根据自己的偏好进行选择 但是必须要操作 系统能够识别为可执行的文件 Windows 平台的文件后缀可以为 bat exe vbs com 等 Linux 平台可以无后缀名 也可以为 sh 2 8 2 文件夹属性实现方式 这里以 TortoiseSVN 下的操作为例进行说明 首先检出要修改的版本库副本 在目标文 件夹副本上单击右键 选择 Properties 菜单 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 在弹出的对话框中 点击 New 新建一个属性 在 Property name 下拉列表中选择 tsvn logminsize 并在 Property value 文本框中输入日 志的长度 然后点击 OK 添加一个属性 38 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 39 点击 OK 确定添加属性 在目标文件夹上点击右键 选择 SVN Commit 由于是在客户端进行检查 虽然还 没有提交到服务器 但是已经生效了 因此必须输入至少 10 个字符 提交 按钮才能够点 击 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 40 3 CVS CVS 是另一种 SCM 工具 不过 它的采纳越来越少了 3 1 CVS概述 CVS Concurrent Versions System 代表协作版本系统或者并发版本系统 是一种版本 控制系统 方便软件的开发和使用者协同工作 CVS 是基于客户端 服务器的架构 处于不 同位置的不同用户可以从 CVS 服务器上更新文件到本地 并将修改的结果或者新文件提交 到服务器 甚至删除旧文件 而且通过 CVS 系统我们可以取到任意文件的任意版本 CVS 的使用获 GNU 通用公共许可证授权 很多开源或者自由软件项目都使用 CVS 作 为其版本管理系统 这些项目包括 Gnome KDE GIMP Wine 等 但是 CVS 也有其明显的缺点 CVS 不支持文件的复制和重新命名 不支持原子性提交 Atomic commit CVS 只支持文本文件 3 2 安装CVS 安装过程与通常的软件安装过程并无不同 直接双击安装程序运行 这是欢迎界面 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 一路 Next 在安装类型界面 选择自定义安装 Custom 41 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 保持组件的选择状态不变 调整要安装的目录 42 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 开始安装 43 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 安装完成之后 立刻重启机器 到此 CVSNT 安装完成 这是安装之后的开始菜单 通过菜单 CVSNT Control Panel 启动 CVSNT 程序 44 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 45 3 3 配置CVS 新建一个目录作为 CVS 版本库的根目录 确保磁盘上有足够的空间 例如 C cvs repository 打开命令行终端 输入以下命令 C cvs version 如果执行失败请查看系统环境变量 Path 是否将 CVSNT 安装路径加入 依次输入以下命令 C temp connectfour set CVSROOT c cvs repository C temp connectfour cvs init 执行成功的结果 这时候在可以看到在版本库的根目录下也新增了一个 CVSROOT 目录 表示初始化成 功 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 进入演示项目源代码所在目录 导入第一个模块 C temp connectfour cvs import m import project connectfour 正常执行结果如下 到此 第一个模块已经初始化完成 我们就可以通过各种客户端或者命令行工具检出代 码到本地进行开发工作了 3 3 1 CVS用户管理 CVSNT 支持两种认证方式 操作系统 CVSNT 混合认证和 CVSNT 独立认证 我们可 以配置 CVSNT 采用的认证方式 在 CVSNT 安装后默认采用混合认证方式 3 3 1 1 混合认证方式 混合认证方式的用户即可以是操作系统的用户也可以是 CVSNT 管理的用户 因此我们 可以简单的通过操作系统来管理访问 CVSNT 的用户 在控制面板 管理工具中找到 计算机管理 双击打开计算机管理窗口 在左侧目录 中找到 本地用户和组 用户 在用户上单击右键 选择 新用户 在弹出的对话框 中输入用户名及密码信息 点击创建就完成了一个新用户的创建 同时我们新建一个对版本库根目录具有完全访问权限的组 并将新建的 CVS 用户加入 这个组 这样所有的 CVS 用户就可以远程访问 CVS 资源库 混合模式下的 CVSNT 独立认证操作方式与 CVSNT 独立认证相同 将在接下来的部分 说明 3 3 1 2 CVSNT认证 CVSNT 认证的用户以及访问控制文件都在 CVSROOT 目录下 以下的操作需要在客户 机安装 CVSNT 并将 CVSNT 安装路径加入系统环境变量 Path 中 新建新建 CVS 管理员用户管理员用户 46 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 47 在 CVS 服务器上打开一个命令终端 执行以下命令新建一个用户 C set CVSROOT C cvs repository C cvs passwd r cvsuser a cvsadmin Adding user cvsadmin New Password Verify Password 注意 cvsuser 是一个操作系统用户 这里是作为 cvs 用户 cvsadmin 的别名 他们之间没 有任何关系 除了作为别名的关系 所有的 cvs 用户都必须要指定操作系统用户作为别名 在远程访问 CVS 库的时候以 cvsuser 身份运行 所有 cvs 用户可以共享一个别名 cvsuser 必须有对 CVS 库根目录有完全访问权限 现在还需要将新建的 cvsadmin 用户加入到管理员用户列表 因为 CVSROOT 下的配置 文件本身也会进行版本控制 因此需要从版本库检出进行修改 执行一下命令 cvs co CVSROOT 在检出的 CVSROOT 目录下新建一个文本文件 admin 在其中加入 cvsadmin 如果要添 加更多的管理员帐户 都在此文件列出 每行一个 修改之后 执行以下命令提交 C CVSROOT cvs add admin C CVSROOT cvs commit m admin 之后修改 checkoutlist 文件 在文件的最后添加一行 admin 回车 然后提交 添加的 目的是为了告诉 cvs admin 文件被检出了需要进行自动构建 checkoutlist 维护了自动 build 的文件列表 以后每次修改 admin 文件系统会重新 build 然后执行以下命令修改 CVSROOT 目录的所有者 C CVSROOT cvs chown cvsadmin 执行以下命令查看是否修改成功并查看访问控制表 C CVSROOT cvs lsacl 管理员用户已经设置完成 如果要增加新的普通用户我们可以直接执行 C temp cvsroot cvs passwd r cvsuser a user1 修改修改 CVS 的权限的权限 在 cvsroot 目录下新建名为 group 的文本文件 这个文件管理 CVS 的组 格式如下 group1 u1 u2 u3 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 48 group2 u2 u3 u4 group3 u5 u6 u7 组名后边紧跟冒号 然后是用户名 所有的用户中间用空格分隔 这种设置方便我们按 组进行访问权限的控制 以下是常用的权限控制的命令 cvs passwd 修改密码或者新建用户 cvs lsacl 列出当前目录的访问权限 cvs chacl 修改当前目录的访问权限 更改更改 CVS 的认证方式的认证方式 我们新建了一个管理员用户 现在需要修改 CVS 的认证方式 在 CVSROOT 目录下找 到 config 文件 并进行编辑 找到如下两行 一般在第一和第二行 将 SystemAuth 前的 去掉并将 yes 修改为 no 确认全部修改正确之后 提交该文件 Set this to no if pserver shouldn t check system users passwords SystemAuth yes 到此 CVSNT 独立认证方式已经正式生效了 现在就可以使用 CVS 管理员用户在客户 机登录 当前登录的用户已经失效了 并执行日常的管理任务 set cvsroot pserver cvsadmin server cvs cvs login cvs co CVSROOT 3 3 2 WinCVS 除了使用命令行进行操作 还可以使用 WinCVS 等客户端 以下介绍使用 WinCVS 进 行模块初始化的过程 新建一个目录作为 CVS 版本库的根目录 确保磁盘上有足够的空间 例如 C cvs repository 在 CVSNT Control Panel 的 Repository configuration 面板 点击 Add 添加刚才新建的项目目录 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 49 其中 Name 为客户端访资料库的路径 设置好各项信息之后点击确定 点击 是 进行初始化 这样版本库已经新建完成 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 50 在版本库的跟目录下也新增了一个 CVSROOT 目录 现在要导入一个新模块 项目 首先需要安装客户端软件 WinCVS 或者其他相似软 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 件 这里以 WinCVS 为例说明 WinCVS 的安装过程比较简单 这里不在详述 安装完成 之后启动 WinCVS 在左侧目录中定位到演示项目源代码存放的目录 这里为 C temp connectfour 如果不 在 C 盘 可以在工具栏的下拉列表切换到其他盘 在目录上点击右键 选择导入模块 确定文件类型无误后 点击 OK 51 东南融通 中国 系统工程有限公司 主流 SCM 工具的配置使用 52 设置详细的导入信息

温馨提示

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

评论

0/150

提交评论