TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
TortoiseSVN
针对 Windows 平台的 Subversion 客户端
Version 1.8
Stefan Küng
Lübbe Onken
Simon Large
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
目录
前言 ................................................................................... x
1. 什么是 TortoiseSVN? .......................................................... x
2. TortoiseSVN 的特性 ............................................................ x
3. 许可协议 ...................................................................... xi
4. 开发 ......................................................................... xi
4.1. TortoiseSVN 的历史 .................................................... xi
4.2. 致谢 ................................................................... xi
5. 阅读指南 ..................................................................... xii
6. 本文使用的术语 ............................................................... xii
1. 开始 ............................................................................... 1
1.1. 安装 TortoiseSVN ............................................................ 1
1.1.1. 系统要求 .............................................................. 1
1.1.2. 安装 .................................................................. 1
1.2. 基本概念 ..................................................................... 1
1.3. 开始试用 ..................................................................... 2
1.3.1. 创建版本库 ............................................................ 2
1.3.2. 导入项目 .............................................................. 2
1.3.3. 检出工作副本 .......................................................... 3
1.3.4. 进行修改 .............................................................. 3
1.3.5. 添加更多的文件 ........................................................ 4
1.3.6. 查看项目历史 .......................................................... 4
1.3.7. 撤消更改 .............................................................. 5
1.4. 继续前进 ... ................................................................. 5
2. 基本版本控制概念 ................................................................... 6
2.1. 版本库 ....................................................................... 6
2.2. 版本模型 ..................................................................... 6
2.2.1. 文件共享的问题 ........................................................ 6
2.2.2. 锁定-修改-解锁 方案 .................................................. 7
2.2.3. 复制-修改-合并 方案 .................................................. 8
2.2.4. Subversion 怎么做? .................................................. 9
2.3. Subversion 实战 ............................................................. 9
2.3.1. 工作副本 .............................................................. 9
2.3.2. 版本库的 URL ........................................................ 11
2.3.3. 修订版本 ............................................................. 11
2.3.4. 工作副本怎样跟踪版本库 ............................................... 12
2.4. 摘要 ........................................................................ 13
3. 版本库 ............................................................................ 14
3.1. 创建版本库 .................................................................. 14
3.1.1. 使用命令行工具创建版本库 ............................................. 14
3.1.2. 使用 TortoiseSVN 创建版本库 ......................................... 14
3.1.3. 本地访问版本库 ....................................................... 15
3.1.4. 访问网络共享磁盘上的版本库 ........................................... 15
3.1.5. 版本库布局 ........................................................... 15
3.2. 版本库备份 .................................................................. 17
3.3. 服务器端钩子脚本 ............................................................ 17
3.4. 检出链接 .................................................................... 18
3.5. 访问版本库 .................................................................. 18
4. 日常使用指南 ...................................................................... 20
4.1. 基本特性 .................................................................... 20
4.1.1. 图标重载 ............................................................. 20
4.1.2. 右键菜单 ............................................................. 20
4.1.3. 拖放 ................................................................. 22
4.1.4. 常用快捷方式 ......................................................... 23
4.1.5. 认证 ................................................................. 23
4.1.6. 最大化窗口 ........................................................... 24
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
4.2. 导入数据到版本库 ............................................................ 24
4.2.1. 导入 ................................................................. 24
4.2.2. 导入适当的位置 ....................................................... 25
4.2.3. 专用文件 ............................................................. 26
4.3. 检出工作副本 ................................................................ 26
4.3.1. 检出深度 ............................................................. 27
4.4. 将你的修改提交到版本库 ...................................................... 28
4.4.1. 提交对话框 ........................................................... 28
4.4.2. 修改列表 ............................................................. 31
4.4.3. Commit only parts of files .......................................... 31
4.4.4. 从提交列表中排除项目 ................................................. 31
4.4.5. 提交日志信息 ......................................................... 31
4.4.6. 提交进程 ............................................................. 33
4.5. 用来自别人的修改更新你的工作副本 ............................................ 33
4.6. 解决冲突 .................................................................... 35
4.6.1. 文件冲突 ............................................................. 35
4.6.2. 属性冲突 ............................................................. 36
4.6.3. 树冲突 ............................................................... 36
4.7. 获得状态信息 ................................................................ 39
4.7.1. 图标重载 ............................................................. 39
4.7.2. 详细状态 ............................................................. 40
4.7.3. 在 Windows 资源管理器中的 TortoiseSVN 列 ............................ 41
4.7.4. 本地与远程状态 ....................................................... 42
4.7.5. 查看差别 ............................................................. 44
4.8. 修改列表 .................................................................... 44
4.9. 版本日志对话框 .............................................................. 46
4.9.1. 调用版本日志对话框 ................................................... 46
4.9.2. 版本日志动作 ......................................................... 47
4.9.3. 获得更多信息 ......................................................... 47
4.9.4. 获取更多的日志信息 ................................................... 53
4.9.5. 当前工作副本的版本 ................................................... 53
4.9.6. 合并跟踪特性 ......................................................... 53
4.9.7. 修改日志消息和作者 ................................................... 54
4.9.8. 过滤日志信息 ......................................................... 55
4.9.9. 统计信息 ............................................................. 56
4.9.10. 离线方式 ............................................................ 60
4.9.11. 刷新视图 ............................................................ 60
4.10. 查看差异 ................................................................... 60
4.10.1. 文件差异 ............................................................ 60
4.10.2. 行结束符和空白选项 .................................................. 61
4.10.3. 比较文件夹 .......................................................... 62
4.10.4. 使用 TortoiseIDiff 进行比较的图像 .................................. 63
4.10.5. Diffing Office Documents ........................................... 63
4.10.6. 其他的比较/合并工具 ................................................. 64
4.11. 添加新文件和目录 ........................................................... 64
4.12. 复制/移动/重命名文件和文件夹 ............................................... 65
4.13. 忽略文件和目录 ............................................................. 66
4.13.1. 忽略列表中的模式匹配 ................................................ 66
4.14. 删除、移动和改名 ........................................................... 67
4.14.1. 正在删除文件/文件夹 ................................................. 68
4.14.2. 移动文件和文件夹 .................................................... 68
4.14.3. 处理文件名称大小写冲突 .............................................. 69
4.14.4. 修复文件改名 ........................................................ 69
4.14.5. 删除未版本控制的文件 ................................................ 69
4.15. 撤消更改 ................................................................... 69
4.16. 清理 ....................................................................... 70
4.17. 项目设置 ................................................................... 71
4.17.1. Subversion 属性 .................................................... 71
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
4.17.2. TortoiseSVN 项目属性 ................................................ 74
4.17.3. 属性编辑器 .......................................................... 80
4.18. 外部条目 ................................................................... 87
4.18.1. 外部文件夹 .......................................................... 87
4.18.2. 外部文件 ............................................................ 89
4.19. 分支/标记 .................................................................. 89
4.19.1. 创建一个分支或标记 .................................................. 89
4.19.2. 创建分支或标记的其他方法 ............................................ 92
4.19.3. 检出或者切换 ........................................................ 92
4.20. 合并 ....................................................................... 93
4.20.1. 合并指定版本范围 .................................................... 93
4.20.2. 合并两个不同的目录树 ................................................ 95
4.20.3. 合并选项 ............................................................ 96
4.20.4. 预览合并结果 ........................................................ 97
4.20.5. 合并跟踪 ............................................................ 98
4.20.6. 子合并期间处理冲突 .................................................. 98
4.20.7. 合并已完成的分支 .................................................... 99
4.20.8. 特性分支维护 ........................................................ 99
4.21. 锁 ........................................................................ 100
4.21.1. 锁定在Subverion中是如何工作的 ...................................... 100
4.21.2. 取得锁定 ........................................................... 101
4.21.3. 释放锁定 ........................................................... 102
4.21.4. 检查锁定状态 ....................................................... 102
4.21.5. 让非锁定的文件变成只读 ............................................. 102
4.21.6. 锁定钩子脚本 ....................................................... 103
4.22. 创建并应用补丁 ............................................................ 103
4.22.1. 创建一个补丁文件 ................................................... 103
4.22.2. 应用一个补丁文件 ................................................... 104
4.23. 谁修改了哪一行? .......................................................... 104
4.23.1. 追溯文件 ........................................................... 105
4.23.2. 追溯不同点 ......................................................... 107
4.24. 版本库浏览器 .............................................................. 107
4.25. 版本分支图 ................................................................ 110
4.25.1. 版本图节点 ......................................................... 110
4.25.2. 更改视图 ........................................................... 111
4.25.3. 使用图 ............................................................. 113
4.25.4. 刷新视图 ........................................................... 113
4.25.5. 修剪树结构 ......................................................... 113
4.26. 导出一个Subversion工作副本 ................................................ 114
4.26.1. 从版本控制里移除删除工作副本 ....................................... 115
4.27. 重新定位工作副本 .......................................................... 115
4.28. 与 BUG 跟踪系统/问题跟踪集成 ............................................. 116
4.28.1. 在日志消息中增加问题号 ............................................. 116
4.28.2. Getting Information from the Issue Tracker ........................ 120
4.29. 与基于 WEB 的版本库浏览器集成 ............................................ 121
4.30. TortoiseSVN的设置 ......................................................... 122
4.30.1. 常规设置 ........................................................... 122
4.30.2. 版本图设置 ......................................................... 131
4.30.3. 图标叠加设置 ....................................................... 133
4.30.4. 网络设置 ........................................................... 137
4.30.5. 外部程序设置 ....................................................... 139
4.30.6. 已保存数据的设置 ................................................... 143
4.30.7. 日志缓存 ........................................................... 144
4.30.8. 客户端钩子脚本 ..................................................... 147
4.30.9. TortoiseBlame 的设置 ............................................... 152
4.30.10. Advanced Settings ................................................. 152
4.30.11. Exporting TSVN Settings .......................................... 157
4.31. 最后步骤 .................................................................. 157
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
5. SubWCRev 程序 .................................................................... 158
5.1. SubWCRev 命令行 ........................................................... 158
5.2. 关键字替换 ................................................................. 158
5.3. 关键字例子 ................................................................. 159
5.4. COM 接口 .................................................................. 160
6. IBugtraqProvider 接口 ............................................................ 163
6.1. 命名规范 ................................................................... 163
6.2. IBugtraqProvider 接口 ..................................................... 163
6.3. IBugtraqProvider2 接口 .................................................... 164
A. 常见问题(FAQ) .................................................................... 168
B. 如何实现 … ...................................................................... 169
B.1. 一次移动或复制多个文件 ..................................................... 169
B.2. 强制用户写日志 ............................................................. 169
B.2.1. 服务器端的钩子脚本(Hook-script) ..................................... 169
B.2.2. 工程(Project)属性 ................................................... 169
B.3. 从版本库里更新选定的文件到本地 ............................................. 169
B.4. Roll back (Undo) revisions in the repository .............................. 169
B.4.1. 使用版本日志对话框 .................................................. 169
B.4.2. 使用合并对话框 ...................................................... 170
B.4.3. 使用 svndumpfilter .................................................. 170
B.5. Compare two revisions of a file or folder ................................ 170
B.6. 包含一个普通的子项目 ....................................................... 171
B.6.1. 使用 svn:externals .................................................. 171
B.6.2. 使用嵌套工作副本 .................................................... 171
B.6.3. 使用相对位置 ........................................................ 171
B.6.4. Add the project to the repository .................................. 172
B.7. 创建到版本库的快捷方式 ..................................................... 172
B.8. 忽略已经版本控制的文件 ..................................................... 172
B.9. 从工作副本删除版本信息 ..................................................... 172
B.10. 删除工作副本 .............................................................. 173
C. Useful Tips For Administrators ................................................... 174
C.1. 通过组策略部署 TortoiseSVN ................................................ 174
C.2. 重定向升级检查 ............................................................. 174
C.3. 设置 SVN_ASP_DOT_NET_HACK 环境变量 ........................................ 175
C.4. 禁用上下文菜单 ............................................................. 175
D. TortoiseSVN 操作 ................................................................. 177
D.1. TortoiseSVN 命令 .......................................................... 177
D.2. Tsvncmd URL handler ....................................................... 178
D.3. TortoiseIDiff 命令 ........................................................ 179E. 命令行交叉索引 ................................................................... 180
E.1. 约定和基本规则 ............................................................. 180E.2. TortoiseSVN 命令 .......................................................... 180
E.2.1. 检出 ................................................................ 180
E.2.2. 更新 ................................................................ 180
E.2.3. 更新到版本 .......................................................... 180
E.2.4. 提交 ................................................................ 181
E.2.5. 差异 ................................................................ 181
E.2.6. 显示日志 ............................................................ 181
E.2.7. 检查修改 ............................................................ 181
E.2.8. 版本图 .............................................................. 182
E.2.9. 版本库浏览器 ........................................................ 182
E.2.10. 编辑冲突 ........................................................... 182
E.2.11. 已解决 ............................................................. 182
E.2.12. 改名 ............................................................... 182
E.2.13. 删除 ............................................................... 182
E.2.14. 恢复 ............................................................... 182
E.2.15. 清理 ............................................................... 183
E.2.16. 获得锁 ............................................................. 183
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
E.2.17. 释放锁 ............................................................. 183
E.2.18. 分支/标记 .......................................................... 183
E.2.19. 切换 ............................................................... 183
E.2.20. 合并 ............................................................... 183
E.2.21. 输出 ............................................................... 184
E.2.22. 重新定位 ........................................................... 184
E.2.23. 在当前位置创建版本库 ............................................... 184
E.2.24. 添加 ............................................................... 184
E.2.25. 导入 ............................................................... 184
E.2.26. 追溯 ............................................................... 184
E.2.27. 加入忽略列表 ....................................................... 184
E.2.28. 创建补丁 ........................................................... 185
E.2.29. 应用补丁(Apply Patch) .............................................. 185
F. 实现细节 ......................................................................... 186
F.1. 图标重载 ................................................................... 186G. 语言包和拼写检查器 ............................................................... 188
G.1. 语言包 ..................................................................... 188G.2. 拼写检查器 ................................................................. 188术语表 ............................................................................... 189索引 ................................................................................. 192
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
插图清单
1.1. 未版本控制文件夹的 TortoiseSVN 菜单 .............................................. 2
1.2. 导入对话框 ....................................................................... 3
1.3. 文件差异查看器 ................................................................... 4
1.4. 日志对话框 ....................................................................... 5
2.1. 一个典型的客户/服务器系统 ........................................................ 6
2.2. 需要避免的问题 ................................................................... 7
2.3. 锁定-修改-解锁 方案 .............................................................. 7
2.4. 复制-修改-合并 方案 .............................................................. 8
2.5. 复制-修改-合并 方案(续) .......................................................... 9
2.6. 版本库的文件系统 ................................................................ 10
2.7. 版本库 .......................................................................... 12
3.1. 未版本控制文件夹的 TortoiseSVN 菜单 ............................................. 14
4.1. 显示重载图标的资源管理器 ........................................................ 20
4.2. 版本控制下一个目录的右键菜单 .................................................... 21
4.3. 在一个版本控制的文件夹下资源管理器文件菜单中的快捷方式。 ......................... 22
4.4. 版本控制下的一个目录的右键拖拽菜单 .............................................. 22
4.5. 认证对话框 ...................................................................... 23
4.6. 导入对话框 ...................................................................... 25
4.7. 检出对话框 ...................................................................... 26
4.8. 提交对话框 ...................................................................... 29
4.9. 提交对话框的拼写检查器 .......................................................... 32
4.10. 显示提交进度的进度对话框 ....................................................... 33
4.11. 已经完成更新的进度对话框 ....................................................... 34
4.12. 显示重载图标的资源管理器 ....................................................... 39
4.13. 资源管理器属性页,Subversion 页面 .............................................. 41
4.14. 检查修改 ....................................................................... 42
4.15. 带有修改列表的提交对话框 ....................................................... 45
4.16. 版本日志对话框 ................................................................. 46
4.17. 版本日志对话框的顶部面板的右键菜单 ............................................. 47
4.18. The Code Collaborator Settings Dialog .......................................... 50
4.19. 选中两个版本的顶部面板的右键菜单 ............................................... 50
4.20. 日志对话框的底部面板的右键菜单 ................................................. 51
4.21. The Log Dialog Bottom Pane with Context Menu When Multiple Files Selected. ..... 52
4.22. 日志对话框显示合并跟踪版本 ..................................................... 54
4.23. 作者提交次数统计柱状图 ......................................................... 57
4.24. 作者提交次数统计饼图 ........................................................... 58
4.25. 按日期提交统计图 ............................................................... 59
4.26. 要离线对话框 ................................................................... 60
4.27. 比较修订版本对话框 ............................................................. 62
4.28. 差异察看器截图 ................................................................. 63
4.29. 未受版本控制的文件之资源管理器上下文菜单 ........................................ 64
4.30. 未受版本控制的文件之资源管理器上下文菜单 ........................................ 66
4.31. 版本控制文件的菜单浏览 ......................................................... 67
4.32. 恢复对话框 ..................................................................... 70
4.33. Subversion 属性页 .............................................................. 71
4.34. 增加属性 ....................................................................... 73
4.35. Property dialog for hook scripts .............................................. 77
4.36. Property dialog boolean user types ............................................ 77
4.37. Property dialog state user types .............................................. 78
4.38. Property dialog single-line user types ......................................... 79
4.39. Property dialog multi-line user types .......................................... 79
4.40. svn:externals 属性页 ........................................................... 81
4.41. svn:keywords 属性页 ............................................................ 81
4.42. svn:eol-style 属性页 ........................................................... 82
4.43. tsvn:bugtraq 属性页 ............................................................ 83
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
4.44. 日志信息属性页的大小 ........................................................... 84
4.45. 语言属性页 ..................................................................... 84
4.46. svn:mime-type 属性页 ........................................................... 85
4.47. svn:needs-lock 属性页 .......................................................... 85
4.48. svn:executable 属性页 .......................................................... 85
4.49. Property dialog merge log message templates .................................... 86
4.50. 分支/标记对话框 ................................................................ 90
4.51. 切换对话框 ..................................................................... 92
4.52. 合并向导 - 选择版本范围 ........................................................ 94
4.53. 合并向导 - 树合并 .............................................................. 96
4.54. 合并冲突回调对话框 ............................................................. 98
4.55. 合并复兴分支对话框 ............................................................. 99
4.56. 锁定对话框 .................................................................... 101
4.57. 检查修改对话框 ................................................................ 102
4.58. 创建补丁的对话框 .............................................................. 103
4.59. 评注/追溯对话框 ............................................................... 105
4.60. TortoiseBlame ................................................................. 106
4.61. 版本库浏览器 .................................................................. 108
4.62. 一个版本分支 .................................................................. 110
4.63. 从 URL 导出对话框 ............................................................. 114
4.64. 重定位对话框 .................................................................. 115
4.65. The Bugtraq Properties Dialog ................................................. 117
4.66. Example issue tracker query dialog ............................................ 121
4.67. 设置对话框,常规设置页面 ...................................................... 123
4.68. 设置对话框,右键菜单页面 ...................................................... 125
4.69. 设置对话框,对话框一页面 ...................................................... 126
4.70. 设置对话框,对话框二页面 ...................................................... 127
4.71. The Settings Dialog, Dialogs 3 Page .......................................... 129
4.72. 设置对话框,颜色页面 .......................................................... 130
4.73. 设置对话框,版本图页面 ........................................................ 131
4.74. 设置对话框,版本图颜色页面 .................................................... 132
4.75. The Settings Dialog, Icon Overlays Page ...................................... 133
4.76. 设置对话框,图标集页面 ........................................................ 136
4.77. The Settings Dialog, Icon Handlers Page ...................................... 137
4.78. 设置对话框,网络设置页面 ...................................................... 138
4.79. 设置对话框,差异查看页面 ...................................................... 139
4.80. 高级差异比较设置/高级合并设置的对话框 .......................................... 142
4.81. 设置对话框,已保存数据设置页面 ................................................ 143
4.82. 设置对话框,日志缓存页面 ...................................................... 144
4.83. 设置对话框,日志缓存统计 ...................................................... 146
4.84. 设置对话框,钩子脚本页 ........................................................ 147
4.85. 设置对话框,配置钩子脚本页面 .................................................. 148
4.86. The Settings Dialog, Issue Tracker Integration Page ........................... 151
4.87. 设置对话框,TortoiseBlame 页面 ................................................ 152
4.88. Taskbar with default grouping ................................................. 154
4.89. Taskbar with repository grouping .............................................. 154
4.90. Taskbar with repository grouping .............................................. 155
4.91. Taskbar grouping with repository color overlays ............................... 155
C.1. The commit dialog, showing the upgrade notification ............................ 174
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
表格清单
2.1. 版本库访问 URL .................................................................. 11
5.1. 列出可用的命令行开关 ........................................................... 158
5.2. List of SubWCRev error codes .................................................. 158
5.3. List of available keywords ..................................................... 158
5.4. 支持 COM/自动化 方法 ........................................................... 160
C.1. 菜单入口和取值 ................................................................. 175
D.1. 有效命令及选项列表 ............................................................. 177
D.2. 可用选项列表 ................................................................... 179
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
前言
版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队 - 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要管理潜在的混乱。
1. 什么是 TortoiseSVN?
TortoiseSVN 是一个 Windows 下的版本控制系统 Apache Subversion® 的客户端工具。就是说,TortoiseSVN 常年管理文件和目录。文件存储于一个中央版本库中。版本库就像一个常见的文件服务器,除了它保存你对文件和目录所有的改变。这一特性使得你可以恢复文件的旧版本并查看历史-谁在什么时间如何进行的修改。这就是为什么很多人认为 Subversion 和版本控制系统是一种“时间机器”。
某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。
2. TortoiseSVN 的特性
是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短的特性列表。
外壳集成
TortoiseSVN 无缝地整合进 Windows 的外壳(例如资源管理器)。这意味着你可以继续使用已经熟悉的工具。而且当需要版本控制功能时你不用切换到不同的应用程序。
而且你并没有被限制在 Windows 资源管理器中; TortoiseSVN 的右键菜单可以在很多其它文件管理器中以及标准 Windows 程序的 文件/打开 对话框中被调出。不过,你应该记住 TortoiseSVN 是专门作为 Windows 资源管理器的扩展进行开发的。因此,有可能在其它程序中整合的不那么完整,例如重载图标可能不显示。
重载图标
每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。图形用户界面
当你列出文件或文件夹的更改时,你可以点击任意版本查看提交注释。也可以看到更改过的文件列表 - 只要双击文件就可以查看更改内容。
提交对话框列出了本次提交将要包括的条目,每一个条目有一个复选框,所以你可以选择包括哪些条目。未版本控制的文件也会被列出,以防你忘记添加新文件。
Subversion 命令的简便访问
所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。
因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:目录版本控制
CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。
原子提交
提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
版本控制的元数据
每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本控制的,就像文件内容。
可选的网络层
Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。
一致的数据处理
Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网络上双向传递。高效的分支和标签
分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时间,以及很小的版本库空间。
3. 许可协议
TortoiseSVN 是一个基于 GNU 通用公共许可协议 (GPL) 开发的开源软件。它可以免费下载和使用,无论是个人或是商业目的,并且没有安装数量的限制。
尽管大多数人只下载安装文件,但你可以取得它的全部源代码。你可以访问以下链接得到源代码:http:///p/tortoisesvn/source/browse/。我们当前正在开发的最新的版本放在 trunk/ 目录下,而已发布版本放在 /tags/ 下。/
4. 开发
TortoiseSVN 和 Subversion 均由参与项目工作的社区人员开发。他们来自于遍布全球的各个国家,一起致力于创造伟大的软件。
4.1. TortoiseSVN 的历史
2002年,Tim Kemp 发现 Subversion 是一个非常好的版本管理系统,但是缺乏一个好的图形界面客户端程序。做一个与 Windows 外壳整合的 Subversion 客户端程序的想法是受一个叫 TortoiseCVS 的 CVS客户端程序所启发的。Tim 研究了 TortoiseCVS 的源码并以此为 TortoiseSVN 的基础。他开始运作这个项目,注册了域名 http:// 并且将源码放在了网上。
就在同时, Stefan Küng 正在寻找一个好用的并且免费的版本控制系统。他找到了 Subversion 和TortoiseSVN 的源码。因为 TortoiseSVN 还不能使用,他加入了项目并开始编码。很快,他就重写了现有的大部分代码并开始添加命令和功能,到了某个时段,最初的代码已经都被改写了。
由于 Subversion 变得越来越稳定,它吸引了越来越多用户,他们同时也开始使用 TortoiseSVN 作为Subversion 的客户端程序。用户数量快速增长(并且每天还在增长)。这时候,Lübbe Onken 提出帮助项目提供精美的图标和 TortoiseSVN 的标志。现在他负责照看网站和管理多语言翻译。
4.2. 致谢
Tim Kemp
启动 TortoiseSVN 项目
Stefan Küng
辛苦工作使 TortoiseSVN 达到现在的样子,并领导整个项目。
Lübbe Onken
制作了漂亮的图标,标志,跟踪错误,翻译并且维护翻译结果
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
Simon Large
维护文档
Stefan Fuhrmann
日志缓存和版本图
Subversion 手册
为了对 Subversion 大量介绍,我们复制了其第二章
Tigris 样式项目
我们在本文重用了一些样式
我们的贡献者
提供了补丁、错误汇报及新的想法,并且在邮件列表上回答了其他人的问题
我们的捐赠者
他们发送给我们的那些音乐带来了快乐
5. 阅读指南
本手册是为那些想使用 Subversion 来管理数据,并且喜欢使用图形界面客户端程序替代命令行程序的电脑用户编写的。TortoiseSVN 是 Windows 外壳扩展,并且假设用户熟悉和使用 Windows 资源管理器。
在 前言 一章里解释了什么是 TortoiseSVN,一些关于 TortoiseSVN 项目和开发人员社区的消息,以及使用和分发它的许可条件。
在 第 1 章 开始 一章里解释了如何在电脑中安装 TortoiseSVN,以及如何立刻开始使用。
在第 2 章 基本版本控制概念一章里简短地介绍了 Subversion 版本控制系统,Subversion是 TortoiseSVN 的基础。这一章借用了 Subversion 项目的文档,介绍了各种版本控制模式,以及Subversion 的工作原理。
第 3 章 版本库这一章解释了如何设置一个本地版本库,本地版本库对于在一台 PC 上测试 Subversion和 TortoiseSVN 非常有用,这一章也介绍了一点版本库管理,也就是如何管理服务器上的版本库。如果你需要一台服务器,这里还有一节介绍如何搭建服务器
第 4 章 日常使用指南是最重要的章节,介绍了 TortoiseSVN 最主要特性的使用。它以教程的形式,从检出一个工作副本开始,然后修改,提交你的修改,之后进入高级主题。
第 5 章 SubWCRev 程序 是 TortoiseSVN 的一个独立程序,可以从工作副本抽取信息并记录到一个文件,可以用来在项目中包含构建信息。
附录 B, 如何实现 …这一节回答了一些操作方面的常见问题。这些常见问题在其他章节没有被明确的提到过。
附录 D, TortoiseSVN 操作 这一节展示了如何使用命令行调用 TortoiseSVN 的 GUI 对话框,当你在使用脚本时仍希望用户交互时非常有用。
附录 E, 命令行交叉索引给出了 TortoiseSVN 命令与其对应的 Subversion 命令行工具 svn.exe 命令之间的关系。
6. 本文使用的术语
为了使文档更加易读,所有 TortoiseSVN 的窗口名和菜单名使用不同的字体,例如日志对话框。
菜单选择使用箭头显示。TortoiseSVN → 显示日志的含义是: 从 TortoiseSVN 右键菜单选择显示日志。在 TortoiseSVN 对话框中出现的右键菜单,可能是这个样子: 右键菜单 → 另存为 ...
用户界面按钮的显示形式: 点击OK以继续。
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
用户动作使用粗体字表示。Alt+A: 表示按住键盘上的 Alt 键同时按下 A 键。右键拖拽: 表示按住鼠标右键同时拖拽条目到新位置。
系统输出和键盘输入也使用不同的字体显示。
使用图标标记的重要提示。
技巧让你的生活更加简单。
操作时需要小心的地方。
需要非常小心操作的地方。如果忽略警告内容将会导致数据损坏或其它严重后果。
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
第 1 章 开始
这一节面向那些想要了解 TortoiseSVN 的用途并且想试用一下它的人。介绍了如何安装 TortoiseSVN及设置本地版本库,还将展示最常用的操作。
1.1. 安装 TortoiseSVN
1.1.1. 系统要求
TortoiseSVN 运行于 Windows XP SP3 或更高版本,并支持32位和64位系统。64位的安装程序也包含了32位的扩展部件。这意味着你不需要额外安装32位版就可以在32位程序中使用 TortoiseSVN 右键菜单
和图标重载。
如果你使用 Windows XP,你必须安装 SP3 或以上版本的补丁。如果没有安装该 SP 补丁
会导致 TortoiseSVN 无法运行。
自 1.2.0 版起放弃对 Windows 98, Windows ME 和 Windows NT 的支持。自 1.7.0 版起放弃对 Windows2000 和 XP SP2 的支持。如果需要,仍然可以下载、安装旧版本。
1.1.2. 安装
TortoiseSVN 以简单易用的安装包的形式发布。双击安装文件并按照提示操作。安装文件会照顾其余的
事情。安装结束后不要忘记重启电脑。
你需要管理员权限来安装 TortoiseSVN。
TortoiseSVN 提供语言补丁(Language pack),它可以将用户界面翻译成多种文字。请查看 附录 G, 语言包和拼写检查器 获得更多关于安装语言补丁的信息。
如果在安装 TortoiseSVN
http:///faq.html过程中或结束后遇到任何问题,情参考我们的在线常见问题: http://
1.2. 基本概念
Before we get stuck into working with some real files, it is important to get an overviewof how Subversion works and the terms that are used.
版本库
Subversion 使用集中的数据库,它包含了所有的版本控制文件及其完整历史。这个数据库就是版本库。版本库通常位于运行 Subversion 服务器的文件服务器上,向 Subversion 客户端(例如TortoiseSVN)提供需要的数据。如果只备份一个东西,请备份版本库,因为它是你数据的主副本。工作副本
这是实际工作的地方。每一个开发者在自己的电脑上都有属于自己的工作副本,有时可以将其理解为沙箱。你可以将最新的版本从版本库上取下来,在本地的副本上工作而不影响其他人,如果对更改满意就可以将其提交到版本库中。
Subversion 工作副本不包含项目的历史, 但是它保存了你修改前的本件的副本,就像这些文件在版本库中的状态一样。这意味着你可以轻而易举的准确检查出都做了哪些改动。
你还要知道从哪里开始运行 TortoiseSVN,因为在开始菜单中看不到。这是因为 TortoiseSVN 是一个外壳扩展,所以第一步,打开 Windows 资源管理器。在资源管理器中用右键单击一个文件夹,然后就会发现在右键菜单中出现一些新的条目,就像这样:
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
图 1.1. 未版本控制文件夹的 TortoiseSVN 菜单
1.3. 开始试用
这一节通过一个小的实验版本库向你展示如何开始一些最普通的用途。实际上这里没有介绍全部功能 -这只是一个快速开始向导而已。一旦你开始使用,你应该花点时间读一下本手册的其它部分,在那里将会详细地介绍本软件的方方面面。也会介绍更多关于设置一个全功能 Subversion 服务器的内容。
1.3.1. 创建版本库
对于一个实际的项目,需要在一个安全的地方创建版本库并设置 Subversion 服务器来控制它。而对于本教程而言,我们将会使用 Subversion 的本机版本库功能,该特性使得用户可以直接访问本机硬盘上的版本库而不需要服务器。
First create a new empty directory on your PC. It can go anywhere, but in this tutorial weare going to call it C:\svn_repos. Now right click on the new folder and from the contextmenu choose TortoiseSVN → Create Repository here.... The repository is then created insidethe folder, ready for you to use. We will also create the default internal folder structure
by clicking the Create folder structure button.
对于测试和评估用途来说,本机版本库功能非常有用,但除非你是一个只使用自己电脑进
行独自工作的开发者,否则你应该使用全功能的 Subversion 服务器。有些小公司为了避免
设置服务器的工作,就通过网络共享来存取版本库。不要这样做。这样会丢失数据。阅读
第 3.1.4 节 “访问网络共享磁盘上的版本库” 了解为什么这是一个坏主意,以及如何设
置服务器。
1.3.2. 导入项目
Now we have a repository, but it is completely empty at the moment. Let's assume I have a setof files in C:\Projects\Widget1 that I would like to add. Navigate to the Widget1 folder inExplorer and right click on it. Now select TortoiseSVN → Import... which brings up a dialog
TortoiseSVN针对 Windows 平台的 Subversion 客户端Version 1.8,开源软件的说明,没有版权问题。
图 1.2. 导入对话框
A Subversion repository is referred to by URL, which allows us to specify a repositoryanywhere on the Internet. In this case we need to point to our own local repository whichhas a URL of file:///c:/svn_repos/trunk, and to which we add our own project name Widget1.Note that there are 3 slashes after file: and that forward slashes are used throughout.这个对话框中另一个重要的功能就是导入信息文本框,你可以输入一段信息来描述你的操作。当你查看项目的历史时,这些提交信息是记录了你修改什么和为什么修改的宝贵资料。在这个例子中,我们可以简单的写一下,例如“导入 Widget1 项目”。点击确定,文件夹就加入到版本库中了。
1.3.3. 检出工作副本
Now that we have a project in our repository, we need to create a working copy to usefor day-to-day work. Note that the act of importing a folder does not automatically turnthat folder into a working copy. The Subversion term for creating a fresh working copy isCheckout. We are going to checkout the Widget1 folder of our repository into a developmentfolder on the PC called C:\Projects\Widget1-Dev. Create that folder, then right click onit and select TortoiseSVN → Checkout.... Enter the URL to checkout, in this case file:///c:/svn_repos/trunk/Widget1 and click on OK. Our development folder is then populated withfiles from the repository.
你会注意到,这个文件夹看起来与我们原来的文件夹不一样。每一个文件的左下角都有一个绿色的对钩。它们就是只出现在工作副本中的 TortoiseSVN 状态图标。绿色的图标表示文件未被修改,和版本库中的文件版本一致。
1.3.4. 进行修改
工作时间到了。 在 Widget-Dev 中,我们开始编辑文件 - 假设我们对 Widget1.c 和 ReadMe.txt 进行了修改。注意,这些文件的重载图标变成了红色,这说明本机文件被修改了。
但是我们做了哪些更改?右键单击任意一个修改过的文件然后选择 TortoiseSVN → 比较差异。启动TortoiseSVN 的文件比较工具,准确地显示哪些行被修改了。