Subversion 权威指南

针对 Subversion 1.4(根据r2866编译)

Ben Collins-Sussman

Brian W. Fitzpatrick

C. Michael Pilato

本作品使用共同创造许可证,可以访问http://creativecommons.org/licenses/by/2.0/或发送邮件到Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.查看本许可证。

(TBA)


目录

前言
序言
读者
怎样阅读本书
本书约定
排版习惯
图标
本书的结构
本书是免费的
致谢
来自 Ben Collins-Sussman
来自 Brian W. Fitzpatrick
来自 C. Michael Pilato
Subversion 是什么?
Subversion的历史
Subversion的特性
Subversion 的架构
Subversion 的组件
1. 基本概念
版本库
版本模型
文件共享的问题
锁定-修改-解锁 方案
拷贝-修改-合并 方案
Subversion实践
Subversion版本库URL
工作拷贝
修订版本
工作拷贝怎样跟踪版本库
混合版本的工作拷贝
总结
2. 基本使用
求助!
导入数据到你的版本库
svn import
推荐的版本库布局
初始化检出
禁用密码缓存
用其它身份认证
基本的工作循环
更新你的工作副本
修改你的工作副本
检查你的修改
取消本地修改
解决冲突(合并别人的修改)
提交你的修改
检验历史
产生历史修改列表
检查历史修改的详情
浏览版本库
获得旧的版本库快照
有时你只需要清理
总结
3. 高级主题
版本清单
修订版本关键字
版本日期
属性
为什么需要属性?
操作属性
属性和 Subversion 工作流程
自动设置属性
文件移植性
文件内容类型
文件的可执行性
行结束字符串
忽略未版本控制的条目
关键字替换
锁定
创建锁定
发现锁定
解除和偷窃锁定
锁定交流
外部定义
Peg 算法和版本
网络模型
请求和响应
客户端凭证缓存
4. 分支与合并
什么是分支?
使用分支
创建分支
在分支上工作
分支背后的关键概念
在分支间复制修改
复制特定的修改
合并背后的关键概念
合并的最佳实践
常见用例
合并分支到另一分支
取消修改
找回删除的项目
常用分支模式
使用分支
标签
建立简单标签
建立复杂标签
分支维护
版本库布局
数据的生命周期
卖主分支
常规的卖主分支管理过程
svn_load_dirs.pl
总结
5. 版本库管理
Subversion 版本库的定义
版本库开发策略
规划你的版本库结构
决定在哪里与如何部署你的版本库
选择数据存储格式
创建和配置你的版本库
创建版本库
实现版本库钩子
Berkeley DB 配置
版本库维护
管理员的工具箱
修正提交消息
管理磁盘空间
Berkeley DB 恢复
版本库数据的移植
过滤版本库历史
版本库复制
版本库备份
总结
6. 服务配置
概述
选择一个服务器配置
svnserve服务器
svnserve使用SSH通道
Apache 的 HTTP 服务器
推荐
svnserve,一个定制的服务器
调用服务器
内置的认证和授权
SSH 隧道
SSH 配置技巧
httpd,Apache 的 HTTP 服务器
先决条件
基本的 Apache 配置
认证选项
授权选项
额外的糖果
基于路径的授权
支持多种版本库访问方法
7. 定制你的 Subversion 用法
运行配置区
配置区布局
配置和 Windows 注册表
配置选项
本地化
理解地区
Subversion 对地区的支持
使用外置比较工具
外置 diff
外置 diff3
8. 嵌入 Subversion
分层的库设计
版本库层
版本库访问层
客户端层
进入工作拷贝的管理区
条目文件
原始拷贝和属性文件
使用 API
Apache 可移植运行库
URL 和路径需求
使用 C 和 C++ 以外的语言
代码样例
9. Subversion 完全参考
The Subversion Command Line Client: svn
svn Options
svn Subcommands
svnadmin
svnadmin Options
svnadmin Subcommands
svnlook
svnlook Options
svnlook Subcommands
svnsync
svnsync Options
svnsync Subcommands
svnserve
svnserve Options
svnversion
mod_dav_svn
Subversion 属性
版本控制的属性
未版本控制的属性
版本库钩子
A. Subversion 快速入门指南
安装 Subversion
快速指南
B. CVS 用户的 Subversion 指南
版本号现在不同了
目录的版本
更多离线操作
区分状态和更新
状态
更新
分支和标签
元数据属性
解决冲突
二进制文件和行结束标记转换
版本化的模块
认证
迁移 CVS 版本库到 Subversion
C. WebDAV 和自动版本
什么是 WebDAV ?
自动版本
客户端交互性
独立的 WebDAV 应用程序
文件浏览器 WebDAV 扩展
WebDAV 文件系统实现
D. 第三方工具
E. Copyright
索引

插图清单

1. Subversion 的架构
1.1. 一个典型的客户/服务器系统
1.2. 需要避免的问题
1.3. 锁定-修改-解锁 方案
1.4. 拷贝-修改-合并 方案
1.5. 拷贝-修改-合并 方案(续)
1.6. 版本库的文件系统
1.7. 版本库
4.1. 分支与开发
4.2. 开始规划版本库
4.3. 版本库与复制
4.4. 一个文件的分支历史
8.1. 二维的文件和目录
8.2. 版本时间—第三维!

表格清单

1.1.
5.1.
6.1.
C.1.

范例清单

5.1. txn-info.sh(报告异常事务)
5.2. 镜像版本库的 pre-revprop-change 钩子
5.3. 镜像版本库的 start-commit 钩子
6.1. 匿名访问的配置实例。
6.2. 一个认证访问的配置实例。
6.3. 一个混合认证/匿名访问的配置实例。
6.4. 禁用所有的路径检查
7.1. 注册表条目(.reg)样本文件。
7.2. diffwrap.sh
7.3. diffwrap.bat
7.4. diff3wrap.sh
7.5. diff3wrap.bat
8.1. 使用版本库层
8.2. 使用 Python 处理版本库层
8.3. A Python Status Crawler