1. 简介 ....................................................................... 1 1.1. 什么是 TortoiseSVN? ................................................ 1 1.2. TortoiseSVN 的历史 .................................................. 1 1.3. TortoiseSVN 的特性 .................................................. 1 1.4. 安装 TortoiseSVN .................................................... 2 1.4.1. 系统要求 ...................................................... 2 1.4.2. 安装 .......................................................... 2 1.4.3. 语言包 ........................................................ 2 1.4.4. 拼写检查器 .................................................... 3 2. 基本概念 ................................................................... 4 2.1. 版本库 .............................................................. 4 2.2. 版本模型 ............................................................. 4 2.2.1. 文件共享的问题 ................................................ 4 2.2.2. 锁定-修改-解锁 方案 ........................................... 5 2.2.3. 复制-修改-合并 方案 ........................................... 6 2.2.4. Subversion 怎么做? ........................................... 8 2.3. Subversion 实战 ..................................................... 9 2.3.1. 工作副本 ...................................................... 9 2.3.2. 版本库的 URL ................................................. 10 2.3.3. 修订版本 ..................................................... 11 2.3.4. 工作副本怎样跟踪版本库 ....................................... 12 2.4. 摘要 ............................................................... 12 3. 配置服务器 ................................................................ 14 3.1. 基于 Apache 的服务器 ............................................... 14 3.1.1. 简介 ......................................................... 14 3.1.2. 安装 Apache .................................................. 14 3.1.3. 安装 Subversion .............................................. 15 3.1.4. 配置 ......................................................... 15 3.1.5. 多版本库 ..................................................... 17 3.1.6. 路径为基础的授权 ............................................. 18 3.1.7. 使用 Windows 域认证 ......................................... 18 3.1.8. 多重认证源 ................................................... 20 3.1.9. 用 SSL 使服务器更安全 ........................................ 20 3.1.10. Using client certificates with virtual SSL hosts ............ 22 3.2. 基于 svnserve 的服务器 ............................................. 23 3.2.1. 简介 ......................................................... 23 3.2.2. 安装 svnserve ................................................ 23 3.2.3. 运行 svnserve ................................................ 24 3.2.4. Basic Authentication with svnserve ........................... 25 3.2.5. 使用 SASL 以便更安全 ........................................ 26 3.2.6. 使用 svn+ssh 认证 ........................................... 28 3.2.7. svnserve 基于路径的授权 ...................................... 28 4. 版本库 .................................................................... 29 4.1. 创建版本库 .......................................................... 29 4.1.1. 使用命令行工具创建版本库 ..................................... 29 4.1.2. 使用 TortoiseSVN 创建版本库 .................................. 29 4.1.3. 本地访问版本库 ............................................... 30 4.1.4. 访问网络共享磁盘上的版本库 ................................... 30 TortoiseSVN iii 4.1.5. 版本库布局 ................................................... 31 4.2. 版本库备份 .......................................................... 32 4.3. 钩子脚本 ............................................................ 32 4.4. 检出链接 ............................................................ 33 5. 日常使用指南 .............................................................. 34 5.1. 开始 ............................................................... 34 5.1.1. 图标重载 ..................................................... 34 5.1.2. 右键菜单 ..................................................... 34 5.1.3. 拖放 ......................................................... 36 5.1.4. 常用快捷方式 ................................................. 37 5.1.5. 认证 ......................................................... 37 5.1.6. 最大化窗口 ................................................... 38 5.2. 导入数据到版本库 .................................................... 38 5.2.1. 导入 ......................................................... 38 5.2.2. 导入适当的位置 ............................................... 40 5.2.3. 专用文件 ..................................................... 40 5.2.4. 引用的工程 ................................................... 40 5.3. 检出工作副本 ........................................................ 42 5.3.1. 检出深度 ..................................................... 43 5.4. 将你的修改提交到版本库 .............................................. 45 5.4.1. 提交对话框 ................................................... 45 5.4.2. 修改列表 ..................................................... 47 5.4.3. Excluding Items from the Commit List ......................... 47 5.4.4. 提交日志信息 ................................................. 47 5.4.5. 提交进程 ..................................................... 48 5.5. 用来自别人的修改更新你的工作副本 .................................... 49 5.6. 解决冲突 ............................................................ 51 5.7. 获得状态信息 ........................................................ 52 5.7.1. 图标重载 ..................................................... 52 5.7.2. 在 Windows 资源管理器中的 TortoiseSVN 列 ..................... 53 5.7.3. 本地与远程状态 ............................................... 54 5.7.4. 查看差别 ..................................................... 55 5.8. 修改列表 ............................................................ 55 5.9. 版本日志对话框 ...................................................... 58 5.9.1. 调用版本日志对话框 ........................................... 58 5.9.2. 版本日志动作 ................................................. 59 5.9.3. 获得更多信息 ................................................. 59 5.9.4. 获取更多的日志信息 ........................................... 62 5.9.5. 合并跟踪特性 ................................................. 62 5.9.6. 修改日志消息和作者 ........................................... 63 5.9.7. 过滤日志信息 ................................................. 64 5.9.8. 统计信息 ..................................................... 64 5.9.9. 离线方式 ..................................................... 66 5.9.10. 刷新视图 .................................................... 67 5.10. 查看差异 ........................................................... 67 5.10.1. 文件差异 .................................................... 67 5.10.2. 行结束符和空白选项 .......................................... 68 5.10.3. 比较文件夹 .................................................. 68 5.10.4. 使用 TortoiseIDiff 进行比较的图像 ........................... 69 5.10.5. 其他的比较/合并工具 ......................................... 70 5.11. 添加新文件和目录 ................................................... 71 5.12. Copying/Moving/Renaming Files and Folders .......................... 72 5.13. 忽略文件和目录 ..................................................... 73 5.13.1. 忽略列表中的模式匹配 ........................................ 74 5.14. 删除、移动和改名 ................................................... 75 5.14.1. 正在删除文件/文件夹 ......................................... 75 5.14.2. 移动文件和文件夹 ............................................ 76 5.14.3. 改变文件名称大小写 .......................................... 77 TortoiseSVN iv 5.14.4. 处理文件名称大小写冲突 ...................................... 77 5.14.5. 修复文件改名 ................................................ 77 5.14.6. 删除未版本控制的文件 ........................................ 78 5.15. 撤消更改 ........................................................... 78 5.16. 清理 .............................................................. 79 5.17. 项目设置 ........................................................... 79 5.17.1. Subversion 属性 ............................................. 80 5.17.2. TortoiseSVN 项目属性 ........................................ 84 5.18. 分支/标记 .......................................................... 85 5.18.1. 创建一个分支或标记 .......................................... 86 5.18.2. 检出或者切换 ................................................ 87 5.19. 正在合并 ........................................................... 88 5.19.1. 合并指定版本范围 ............................................ 89 5.19.2. 复兴分支 .................................................... 91 5.19.3. 合并两个不同的目录树 ........................................ 91 5.19.4. 合并选项 .................................................... 92 5.19.5. 预览合并结果 ................................................ 93 5.19.6. 合并跟踪 .................................................... 94 5.19.7. 子合并期间处理冲突 .......................................... 94 5.19.8. Merge a Completed Branch ................................... 95 5.20. 锁 ................................................................ 96 5.20.1. 锁定在Subverion中是如何工作的 ............................... 96 5.20.2. 取得锁定 .................................................... 97 5.20.3. 释放锁定 .................................................... 97 5.20.4. 检查锁定状态 ................................................ 98 5.20.5. 让非锁定的文件变成只读 ...................................... 98 5.20.6. 锁定钩子脚本 ................................................ 98 5.21. 创建并应用补丁 ..................................................... 99 5.21.1. 创建一个补丁文件 ............................................ 99 5.21.2. 应用一个补丁文件 ........................................... 100 5.22. 谁修改了哪一行? .................................................. 100 5.22.1. 追溯文件 ................................................... 101 5.22.2. 追溯不同点 ................................................. 103 5.23. 版本库浏览器 ...................................................... 103 5.24. 版本分支图 ........................................................ 105 5.24.1. 版本图节点 ................................................. 106 5.24.2. Changing the View ......................................... 106 5.24.3. 使用图 ..................................................... 107 5.24.4. 刷新视图 ................................................... 107 5.25. 导出一个Subversion工作副本 ........................................ 108 5.25.1. 从版本控制里移除删除工作副本 ............................... 108 5.26. 重新定位工作副本 .................................................. 109 5.27. 与 BUG 跟踪系统/问题跟踪集成 ...................................... 109 5.27.1. Adding Issue Numbers to Log Messages ....................... 110 5.27.2. Getting Information from the Issue Tracker ................. 112 5.28. 与基于 WEB 的版本库浏览器集成 ..................................... 113 5.29. TortoiseSVN的设置 ................................................. 114 5.29.1. 常规设置 ................................................... 114 5.29.2. 图标叠加设置 ............................................... 122 5.29.3. 网络设置 ................................................... 125 5.29.4. 外部程序设置 ............................................... 126 5.29.5. 已保存数据的设置 ........................................... 129 5.29.6. 日志缓存 ................................................... 130 5.29.7. 客户端钩子脚本 ............................................. 132 5.29.8. TortoiseBlame 的设置 ....................................... 136 5.29.9. 注册表设置 ................................................. 136 5.29.10. Subversion 的工作文件夹 ................................... 137 5.30. 最后步骤 .......................................................... 137 TortoiseSVN v 6. SubWCRev 程序 ............................................................ 138 6.1. SubWCRev 命令行 ................................................... 138 6.2. 关键字替换 ......................................................... 138 6.3. 关键字例子 ......................................................... 139 6.4. COM 接口 .......................................................... 140 A. 常见问题(FAQ) ............................................................ 142 B. 如何实现 … .............................................................. 143 B.1. 一次移动或复制多个文件 ............................................. 143 B.2. 强制用户写日志 ..................................................... 143 B.2.1. 服务器端的钩子脚本(Hook-script) ............................. 143 B.2.2. 工程(Project)属性 ........................................... 143 B.3. 从版本库里更新选定的文件到本地 ..................................... 143 B.4. Roll back (Undo) revisions in the repository ...................... 144 B.4.1. 使用版本日志对话框 .......................................... 144 B.4.2. 使用合并对话框 .............................................. 144 B.4.3. 使用 svndumpfilter .......................................... 144 B.5. 比较一个文件的两个版本 ............................................. 145 B.6. 包含一个普通的子项目 ............................................... 145 B.6.1. 使用 svn:externals .......................................... 145 B.6.2. 使用嵌套工作副本 ............................................ 145 B.6.3. 使用相对位置 ................................................ 145 B.7. 创建到版本库的快捷方式 ............................................. 146 B.8. 忽略已经版本控制的文件 ............................................. 146 B.9. 从工作副本删除版本信息 ............................................. 146 B.10. 删除工作副本 ...................................................... 147 C. 对管理员有用的技巧 ....................................................... 148 C.1. 通过组策略部署 TortoiseSVN ......................................... 148 C.2. 重定向升级检查 ..................................................... 148 C.3. 设置 SVN_ASP_DOT_NET_HACK 环境变量 ................................. 149 C.4. 禁用上下文菜单 ..................................................... 149 D. TortoiseSVN 操作 ......................................................... 151 D.1. TortoiseSVN 命令 .................................................. 151 D.2. TortoiseIDiff 命令 ................................................ 154 E. 命令行交叉索引 ........................................................... 155 E.1. 约定和基本规则 ..................................................... 155 E.2. TortoiseSVN 命令 .................................................. 155 E.2.1. 检出 ........................................................ 155 E.2.2. 更新 ........................................................ 155 E.2.3. 更新到版本 .................................................. 155 E.2.4. 提交 ........................................................ 156 E.2.5. 差异 ........................................................ 156 E.2.6. 显示日志 .................................................... 156 E.2.7. 检查所作的修改 .............................................. 157 E.2.8. 版本图 ...................................................... 157 E.2.9. 版本库浏览器 ................................................ 157 E.2.10. 编辑冲突 ................................................... 157 E.2.11. 已解决 ..................................................... 157 E.2.12. 改名 ....................................................... 157 E.2.13. 删除 ....................................................... 157 E.2.14. 恢复 ....................................................... 157 E.2.15. 清理 ....................................................... 158 E.2.16. 获得锁 ..................................................... 158 E.2.17. 释放锁 ..................................................... 158 E.2.18. 分支/标记 .................................................. 158 E.2.19. 切换 ....................................................... 158 E.2.20. 合并 ....................................................... 159 E.2.21. 输出 ....................................................... 159 E.2.22. 重新定位 ................................................... 159 TortoiseSVN vi E.2.23. 在当前位置创建版本库 ....................................... 159 E.2.24. 添加 ....................................................... 159 E.2.25. 导入 ....................................................... 159 E.2.26. 追溯 ....................................................... 159 E.2.27. 加入忽略列表 ............................................... 160 E.2.28. 创建补丁 ................................................... 160 E.2.29. 应用补丁(Apply Patch) ...................................... 160 F. 实现细节 ................................................................. 161 F.1. 图标重载 ........................................................... 161 G. 用 SSH 使服务器更安全 .................................................... 163 G.1. 配置 Linux 服务器 ................................................. 163 G.2. 配置 Windows 服务器 ............................................... 163 G.3. 用于 TortoiseSVN 的 SSH 客户端工具 ................................ 164 G.4. 创建 OpenSSH 证书 ................................................. 164 G.4.1. 使用 ssh-keygen 创建密钥 .................................... 164 G.4.2. 使用 PuTTYgen 创建密钥 ...................................... 164 G.5. 使用 PuTTY 测试 ................................................... 165 G.6. 使用 TortoiseSVN 测试 SSH ......................................... 165 G.7. SSH 配置参数 ...................................................... 166 术语表 ....................................................................... 168 索引 ......................................................................... 171 TortoiseSVN是一款针对Windows平台的开源版本控制系统Subversion的客户端程序。Subversion,又称SVN,是一种集中式版本控制系统,广泛应用于软件开发和文档管理等领域。 ### TortoiseSVN简介 #### 什么是TortoiseSVN? TortoiseSVN是一个Subversion版本控制系统的客户端,它为Windows操作系统提供图形用户界面。它允许用户在文件系统中直接对版本库进行操作,无需命令行。 #### TortoiseSVN的历史 自2002年创建以来,TortoiseSVN一直在不断地更新和改进,旨在为用户提供一个稳定、易用的版本控制解决方案。 #### TortoiseSVN的特性 TortoiseSVN提供了丰富的特性,例如版本库浏览、版本比较、日志查看、提交、更新、分支管理等。通过图形界面,用户可以方便地查看版本变化、进行合并操作、解决冲突等。 #### 安装TortoiseSVN TortoiseSVN的安装十分简单,只需下载安装包并运行。系统要求包括Windows 2000或更高版本的操作系统。安装过程中,用户可以选择安装语言包,以获得更好的本地化体验。另外,TortoiseSVN还支持拼写检查器,可以对提交日志进行拼写检查。 ### 基本概念 #### 版本库 版本库是存储所有文件和目录历史版本的服务器端存储库。它是版本控制的核心部分,所有协作的文件和信息都保存在这里。 #### 版本模型 版本控制中存在两种主要的并发控制方案:锁定-修改-解锁(Lock-Modify-Unlock, LMK)和复制-修改-合并(Copy-Modify-Merge, CMM)。Subversion采用CMM方案,允许在不同开发者之间共享文件的同时进行协作。 #### Subversion实战 Subversion通过工作副本(Working Copy)的方式,允许开发者在本地对文件进行操作,之后提交更改到版本库中。工作副本通过URL地址与版本库进行连接。 ### 配置服务器 #### 基于Apache的服务器 TortoiseSVN可以通过Apache HTTP服务器进行访问。Apache可以安装在各种平台上,而配置部分包括安装Apache、Subversion以及配置服务器的细节。 #### 基于svnserve的服务器 svnserve是一个简单的服务器,可以直接用Subversion的协议进行访问。它适用于小型项目或者临时的需求,同样支持认证机制和安全连接。 ### 版本库 #### 创建版本库 用户可以使用命令行工具或TortoiseSVN图形界面来创建版本库。创建后,版本库可以被本地访问或放置在网络共享磁盘上。 #### 版本库备份 为了防止数据丢失,定期备份版本库是必要的。备份可以通过TortoiseSVN或命令行工具完成。 #### 钩子脚本 版本库中的钩子脚本可以自动执行特定的操作,如通知、验证、导入导出等。 #### 检出链接 检出链接是一种快速访问特定版本库的方式,特别是当版本库位于互联网上时。 ### 日常使用指南 #### 开始 使用TortoiseSVN开始工作前,需要了解如何加载图标、使用右键菜单、拖放操作、快捷方式和认证机制。 #### 导入数据到版本库 可以通过TortoiseSVN导入整个目录或单个文件到版本库。 #### 检出工作副本 检出是将版本库中的数据复制到本地计算机的过程。检出深度决定了复制的层级。 #### 提交修改到版本库 提交(Commit)是将工作副本中修改的内容发送到版本库的动作。提交前,用户需要填写提交日志信息。 #### 更新工作副本 更新(Update)是将版本库中的最新更改合并到本地工作副本的动作。 #### 解决冲突 当多个用户对同一文件进行修改时,可能会出现冲突。解决冲突是将其他人的修改和本地修改合并的过程。 #### 获得状态信息 通过图标、TortoiseSVN列、本地与远程状态以及查看差别等功能来获取工作副本的状态信息。 #### 修改列表 在提交前,可以查看和管理需要提交的文件列表。 #### 版本日志对话框 版本日志对话框允许用户查看和管理版本库中的版本日志记录。 #### 查看差异 用户可以查看两个版本之间的差异,以理解所做修改的具体内容。 #### 添加、移动、重命名文件和目录 这些操作对版本库中的文件和目录进行修改。TortoiseSVN提供了图形界面来帮助用户完成这些操作。 #### 忽略文件和目录 TortoiseSVN允许用户在版本库中忽略某些文件和目录,这些文件和目录不会被版本控制跟踪。 #### 删除、移动和改名 文件和目录可以被删除、移动或重命名。TortoiseSVN提供图形界面和一些提示来引导用户完成操作。 #### 撤消更改 如果需要取消本地的更改,TortoiseSVN提供了撤消操作。 #### 清理 清理操作可以修复或删除不正确的状态标记,使工作副本恢复到一致状态。 #### 项目设置 用户可以配置Subversion和TortoiseSVN的项目属性,以适应特定的项目需求。 #### 分支/标记 在版本控制中,分支和标记用于创建源代码树的副本,用于测试、开发或长期支持。 #### 合并 合并操作用于将一个分支的变更整合到另一个分支或主干。 #### 锁定 锁机制用于避免对同一文件的并发修改,确保版本控制的完整性。 #### 创建并应用补丁 补丁文件允许用户将一组更改打包并共享给其他人。 #### 谁修改了哪一行? TortoiseSVN提供工具来跟踪特定文件的修改历史。 #### 版本库浏览器 版本库浏览器可以查看版本库中的文件和目录。 #### 版本分支图 版本分支图可以清晰地展现版本之间的关系和分支的结构。 #### 导出Subversion工作副本 可以将版本库的内容导出到没有版本控制的本地副本。 #### 重新定位工作副本 如果工作副本的版本库地址发生变化,需要进行重新定位。 #### 与BUG跟踪系统/问题跟踪集成 TortoiseSVN可以与外部的BUG跟踪系统集成,方便用户在提交日志中引用BUG编号。 #### 与基于WEB的版本库浏览器集成 TortoiseSVN也可以与基于WEB的版本库浏览器集成,方便用户在浏览器中直接访问版本库。 #### TortoiseSVN的设置 TortoiseSVN提供了多种设置选项,如常规设置、图标叠加设置、网络设置等,以满足用户的个性化需求。 #### 最后步骤 完成所有的操作后,通常是一些清理和优化工作,确保版本库的完整和性能。 ### 额外内容 #### SubWCRev程序 SubWCRev是一个可以用来更新工作副本中的关键字的程序,这通常用于更新项目中的版本号或日期等信息。 #### 常见问题(FAQ) 文档中也包括了常见问题解答,帮助用户解决实际遇到的难题。 #### 实现细节 TortoiseSVN的实现细节部分涉及图标重载等技术细节。 #### 使用SSH使服务器更安全 为了增强服务器的安全性,TortoiseSVN支持使用SSH进行加密的连接。 #### 术语表和索引 文档中包括了术语表和索引,方便读者查找特定的术语和文档内容。 TortoiseSVN提供了丰富的功能,通过图形化界面,极大地方便了开发人员和项目团队的协作。通过以上的知识点,可以掌握如何使用TortoiseSVN进行高效地版本控制和管理。
剩余183页未读,继续阅读
- wjmde6782014-04-01资料还可以就是user guid
- ivorstar2014-10-29不能用吗?可以啊
- fengely2013-11-13这么高分,还不能用。。。。
- 粉丝: 24
- 资源: 18
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助