本文本尚未完工,内容可能随时更改,可能无法准确描述任何已发布的 Apache™ Subversion® 软件版本。将此页面添加书签或推荐给他人可能不是一个好主意。请访问 http://svnbooks.subversion.org.cn/ 获取本书的稳定版本。

第一部分:认识 Subversion

目录

1. 基本概念
版本控制基础
仓库
工作副本
版本控制模型
文件共享的问题
锁定-修改-解锁解决方案
复制-修改-合并解决方案
Subversion 版本控制的方式
Subversion 仓库
版本
仓库地址
Subversion 工作副本
工作副本的工作原理
工作副本的基本交互
混合版本工作副本
总结
2. 基本用法
帮助!
将数据导入仓库
导入文件和目录
推荐的仓库布局
名称的意义
创建工作副本
基本工作流程
更新工作副本
进行修改
查看修改
查看修改概述
查看本地修改的详细信息
修复错误
解决冲突
交互式查看冲突差异
交互式解决冲突差异
延迟解决冲突
手动解决冲突
放弃修改并获取最新的版本
放弃修改:使用 svn revert
提交修改
查看历史记录
查看历史修改的详细信息
查看本地修改
比较工作副本与仓库
比较仓库版本
生成历史修改列表
浏览仓库
显示文件内容
显示逐行修改归属
列出版本化的目录
获取旧的仓库快照
有时你需要清理
处理工作副本
从中断中恢复
处理结构冲突
示例树冲突
总结
3. 高级主题
版本标识符
版本关键字
版本日期
挂钩版本和操作版本
属性
为什么要使用属性?
操作属性
属性与 Subversion 工作流程
继承属性
自动设置属性
Subversion 的保留属性
版本化属性
非版本化属性
文件可移植性
文件内容类型
文件可执行性
行尾字符序列
忽略非版本化项
关键字替换
稀疏目录
锁定
创建锁定
发现锁定
破坏和窃取锁定
锁定通信
外部定义
变更列表
创建和修改变更列表
变更列表作为操作过滤器
变更列表限制
网络模型
请求和响应
客户端凭据
缓存凭据
禁用密码缓存
删除缓存的凭据
命令行身份验证
身份验证总结
无需工作副本
远程命令行客户端操作
使用 svnmucc
总结
4. 分支与合并
什么是分支?
使用分支
创建分支
使用分支
分支背后的关键概念
基本合并
变更集
保持分支同步
子树合并和子树合并信息
重新整合分支
合并信息和预览
撤销修改
恢复已删除的项
高级合并
cherry-pick
合并语法:完全披露
无需合并信息的合并
更多关于合并冲突
阻止修改
合并敏感的日志和注释
注意或忽略祖先
合并和移动
阻止天真的客户端提交合并
关于合并跟踪的最后一句话
遍历分支
标签
创建简单标签
创建复杂标签
分支维护
仓库布局
数据生命周期
常见的分支模式
发布分支
特性分支
供应商分支
通用的供应商分支管理流程
来自外部仓库的供应商分支
来自镜像源的供应商分支
分支还是不分支?
总结
5. 仓库管理
Subversion 仓库定义
仓库部署策略
规划仓库组织
决定在何处以及如何托管仓库
控制对仓库的访问
创建和配置仓库
创建仓库
实施仓库钩子
钩子脚本环境配置
钩子脚本的常见用途
查找钩子脚本或编写自己的脚本
FSFS 配置
仓库维护
管理员工具集
svnadmin
svnlook
svndumpfilter
svnrdump
svnsync
fsfs-reshard.py
提交日志信息更正
管理磁盘空间
Subversion 如何节省磁盘空间
删除无效事务
打包 FSFS 文件系统
将仓库数据迁移到其他地方
使用 svnadmin 迁移仓库数据
使用 svnrdump 迁移仓库数据
过滤仓库历史记录
仓库复制
使用 svnsync 复制
使用 svnsync 部分复制
镜像创建的快速技巧
复制总结
仓库备份
管理仓库 UUID
移动和删除仓库
总结
6. 服务器配置
概述
选择服务器配置
svnserve 服务器
通过 SSH 使用 svnserve
Apache HTTP 服务器
建议
svnserve,一个自定义服务器
启动服务器
svnserve 作为守护进程
svnserve 通过 inetd
svnserve 通过 xinetd
svnserve 通过隧道
svnserve 作为 Windows 服务
svnserve 作为 launchd 任务
内置身份验证和授权
创建用户文件和域
设置访问控制
将 svnserve 与 SASL 一起使用
使用 SASL 进行身份验证
SASL 加密
通过 SSH 建立隧道
SSH 配置技巧
初始设置
控制调用的命令
svnserve 配置参考
一般配置
Cyrus SASL 配置
httpd,Apache HTTP 服务器
先决条件
基本的 Apache 配置
身份验证选项
基本身份验证
摘要式身份验证
授权选项
整体访问控制
按目录的访问控制
禁用基于路径的检查
版本化的仓库访问文件
使用 SSL 保护网络流量
Subversion 服务器 SSL 证书配置
Subversion 客户端 SSL 证书管理
性能优化
KeepAlive
批量更新
额外的功能
仓库浏览
Apache 日志
直写代理
其他 Apache 功能
Subversion Apache HTTP 服务器配置参考
mod_dav_svn 配置指令
mod_authz_svn 配置指令
基于路径的授权
基于路径的访问控制入门
访问控制组
用户名别名
高级访问控制功能
访问控制的一些注意事项
高级日志
服务器优化
数据缓存
数据网络压缩
支持多种仓库访问方法
7. 自定义 Subversion 体验
运行时配置区域
配置区域布局
配置和 Windows 注册表
运行时配置选项
一般配置
每个服务器的配置
本地化
理解地域
Subversion 的地域使用
使用外部编辑器
使用外部差异和合并工具
外部 diff
外部 diff3
外部合并
总结
8. 嵌入 Subversion
分层库设计
仓库层
仓库访问层
客户端层
使用 API
Apache 可移植运行时库
函数和批次
URL 和路径要求
使用除 C 和 C++ 之外的语言
代码示例
总结
TortoiseSVN 官方中文版 1.14.7 发布