TortoiseSVN
针对 Windows 平台的 Subversion 客户端
Version 1.9
Stefan Küng
Lübbe Onken
Simon Large
ii
目录
前言 ................................................................................... 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. 工作副本怎样跟踪版本库 ............................................... 13
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
iii
4.2. 导入数据到版本库 ............................................................ 24
4.2.1. 导入 ................................................................. 24
4.2.2. 导入适当的位置 ....................................................... 25
4.2.3. 专用文件 ............................................................. 26
4.3. 检出工作副本 ................................................................ 26
4.3.1. 检出深度 ............................................................. 27
4.4. 将你的修改提交到版本库 ...................................................... 29
4.4.1. 提交对话框 ........................................................... 29
4.4.2. 修改列表 ............................................................. 32
4.4.3. Commit only parts of files .......................................... 32
4.4.4. 从提交列表中排除项目 ................................................. 32
4.4.5. 提交日志信息 ......................................................... 33
4.4.6. 提交进程 ............................................................. 34
4.5. 用来自别人的修改更新你的工作副本 ............................................ 35
4.6. 解决冲突 .................................................................... 37
4.6.1. 文件冲突 ............................................................. 37
4.6.2. 属性冲突 ............................................................. 38
4.6.3. 树冲突 ............................................................... 38
4.7. 获得状态信息 ................................................................ 41
4.7.1. 图标重载 ............................................................. 41
4.7.2. 详细状态 ............................................................. 42
4.7.3. 本地与远程状态 ....................................................... 43
4.7.4. 查看差别 ............................................................. 46
4.8. 修改列表 .................................................................... 46
4.9. 版本日志对话框 .............................................................. 48
4.9.1. 调用版本日志对话框 ................................................... 48
4.9.2. 版本日志动作 ......................................................... 49
4.9.3. 获得更多信息 ......................................................... 50
4.9.4. 获取更多的日志信息 ................................................... 56
4.9.5. 当前工作副本的版本 ................................................... 56
4.9.6. 合并跟踪特性 ......................................................... 56
4.9.7. 修改日志消息和作者 ................................................... 57
4.9.8. 过滤日志信息 ......................................................... 58
4.9.9. 统计信息 ............................................................. 59
4.9.10. 离线方式 ............................................................ 63
4.9.11. 刷新视图 ............................................................ 63
4.10. 查看差异 ................................................................... 63
4.10.1. 文件差异 ............................................................ 63
4.10.2. 行结束符和空白选项 .................................................. 64
4.10.3. 比较文件夹 .......................................................... 65
4.10.4. 使用 TortoiseIDiff 进行比较的图像 .................................. 66
4.10.5. 比较Office文档 ...................................................... 67
4.10.6. 其他的比较/合并工具 ................................................. 67
4.11. 添加新文件和目录 ........................................................... 68
4.12. 复制/移动/重命名文件和文件夹 ............................................... 68
4.13. 忽略文件和目录 ............................................................. 69
4.13.1. 忽略列表中的模式匹配 ................................................ 70
4.14. 删除、移动和改名 ........................................................... 70
4.14.1. 正在删除文件/文件夹 ................................................. 71
4.14.2. 移动文件和文件夹 .................................................... 72
4.14.3. 处理文件名称大小写冲突 .............................................. 72
4.14.4. 修复文件改名 ........................................................ 72
4.14.5. 删除未版本控制的文件 ................................................ 73
4.15. 撤消更改 ................................................................... 73
4.16. 清理 ....................................................................... 74
4.17. 项目设置 ................................................................... 75
4.17.1. Subversion 属性 .................................................... 75
4.17.2. TortoiseSVN 项目属性 ................................................ 78
TortoiseSVN
iv
4.17.3. 属性编辑器 .......................................................... 83
4.18. 外部条目 ................................................................... 90
4.18.1. 外部文件夹 .......................................................... 90
4.18.2. 外部文件 ............................................................ 92
4.18.3. Creating externals via drag and drop ............................... 92
4.19. 分支/标记 .................................................................. 92
4.19.1. 创建一个分支或标记 .................................................. 93
4.19.2. 创建分支或标记的其他方法 ............................................ 95
4.19.3. 检出或者切换 ........................................................ 95
4.20. 合并 ....................................................................... 96
4.20.1. 合并指定版本范围 .................................................... 97
4.20.2. 合并两个不同的目录树 ................................................ 99
4.20.3. 合并选项 ............................................................ 99
4.20.4. 预览合并结果 ....................................................... 100
4.20.5. 合并跟踪 ........................................................... 101
4.20.6. 子合并期间处理冲突 ................................................. 101
4.20.7. 特性分支维护 ....................................................... 102
4.21. 锁 ........................................................................ 103
4.21.1. 锁定在Subverion中是如何工作的 ...................................... 103
4.21.2. 取得锁定 ........................................................... 104
4.21.3. 释放锁定 ........................................................... 104
4.21.4. 检查锁定状态 ....................................................... 105
4.21.5. 让非锁定的文件变成只读 ............................................. 105
4.21.6. 锁定钩子脚本 ....................................................... 105
4.22. 创建并应用补丁 ............................................................ 106
4.22.1. 创建一个补丁文件 ................................................... 106
4.22.2. 应用一个补丁文件 ................................................... 107
4.23. 谁修改了哪一行? .......................................................... 107
4.23.1. 追溯文件 ........................................................... 108
4.23.2. 追溯不同点 ......................................................... 110
4.24. 版本库浏览器 .............................................................. 110
4.25. 版本分支图 ................................................................ 113
4.25.1. 版本图节点 ......................................................... 113
4.25.2. 更改视图 ........................................................... 114
4.25.3. 使用图 ............................................................. 116
4.25.4. 刷新视图 ........................................................... 116
4.25.5. 修剪树结构 ......................................................... 116
4.26. 导出一个Subversion工作副本 ................................................ 117
4.26.1. 从版本控制里移除删除工作副本 ....................................... 118
4.27. 重新定位工作副本 .......................................................... 118
4.28. 与 BUG 跟踪系统/问题跟踪集成 ............................................. 119
4.28.1. 在日志消息中增加问题号 ............................................. 119
4.28.2. 从问题跟踪器中获取信息 ............................................. 123
4.29. 与基于 WEB 的版本库浏览器集成 ............................................ 124
4.30. TortoiseSVN的设置 ......................................................... 125
4.30.1. 常规设置 ........................................................... 125
4.30.2. 版本图设置 ......................................................... 134
4.30.3. 图标叠加设置 ....................................................... 136
4.30.4. 网络设置 ........................................................... 140
4.30.5. 外部程序设置 ....................................................... 142
4.30.6. 已保存数据的设置 ................................................... 147
4.30.7. 日志缓存 ........................................................... 148
4.30.8. 客户端钩子脚本 ..................................................... 151
4.30.9. TortoiseBlame 的设置 ............................................... 156
4.30.10. TortoiseUDiff Settings ............................................ 157
4.30.11. 正在导出TSVN设置 .................................................. 158
4.30.12. 高级设置 .......................................................... 158
4.31. 最后步骤 .................................................................. 163
TortoiseSVN
v
5. Project Monitor .................................................................. 164
5.1. Adding projects to monitor ................................................ 164
5.2. Monitor dialog ............................................................ 165
5.2.1. Main operations .................................................... 165
6. SubWCRev 程序 .................................................................... 167
6.1. SubWCRev 命令行 ........................................................... 167
6.2. 关键字替换 ................................................................. 169
6.3. 关键字例子 ................................................................. 170
6.4. COM 接口 .................................................................. 171
7. IBugtraqProvider 接口 ............................................................ 175
7.1. 命名规范 ................................................................... 175
7.2. IBugtraqProvider 接口 ..................................................... 175
7.3. IBugtraqProvider2 接口 .................................................... 176
A. 常见问题(FAQ) .................................................................... 180
B. 如何实现 … ...................................................................... 181
B.1. 一次移动或复制多个文件 ..................................................... 181
B.2. 强制用户写日志 ............................................................. 181
B.2.1. 服务器端的钩子脚本(Hook-script) ..................................... 181
B.2.2. 工程(Project)属性 ................................................... 181
B.3. 从版本库里更新选定的文件到本地 ............................................. 181
B.4. Roll back (Undo) revisions in the repository .............................. 181
B.4.1. 使用版本日志对话框 .................................................. 181
B.4.2. 使用合并对话框 ...................................................... 182
B.4.3. 使用 svndumpfilter .................................................. 182
B.5. Compare two revisions of a file or folder ................................ 182
B.6. 包含一个普通的子项目 ....................................................... 183
B.6.1. 使用 svn:externals .................................................. 183
B.6.2. 使用嵌套工作副本 .................................................... 183
B.6.3. 使用相对位置 ........................................................ 183
B.6.4. 增加此项目到版本库 .................................................. 184
B.7. 创建到版本库的快捷方式 ..................................................... 184
B.8. 忽略已经版本控制的文件 ..................................................... 184
B.9. 从工作副本删除版本信息 ..................................................... 184
B.10. 删除工作副本 .............................................................. 185
C. Useful Tips For Administrators ................................................... 186
C.1. 通过组策略部署 TortoiseSVN ................................................ 186
C.2. 重定向升级检查 ............................................................. 186
C.3. 设置 SVN_ASP_DOT_NET_HACK 环境变量 ........................................ 187
C.4. 禁用上下文菜单 ............................................................. 187
D. TortoiseSVN 操作 ................................................................. 190
D.1. TortoiseSVN 命令 .......................................................... 190
D.2. Tsvncmd URL handler ....................................................... 196
D.3. TortoiseIDiff 命令 ........................................................ 196
D.4. TortoiseUDiff Commands .................................................... 197
E. 命令行交叉索引 ................................................................... 198
E.1. 约定和基本规则 ............................................................. 198
E.2. TortoiseSVN 命令 .......................................................... 198
E.2.1. 检出 ................................................................ 198
E.2.2. 更新 ................................................................ 198
E.2.3. 更新到版本 .......................................................... 198
E.2.4. 提交 ................................................................ 199
E.2.5. 差异 ................................................................ 199
E.2.6. 显示日志 ............................................................ 199
E.2.7. 检查修改 ............................................................ 200
E.2.8. 版本图 .............................................................. 200
E.2.9. 版本库浏览器 ........................................................ 200
E.2.10. 编辑冲突 ........................................................... 200
E.2.11. 已解决 ............................................................. 200