使用Subversion进行版本控制

针对 Subversion 1.2

(本书编译对应2534修订版本)

本书使用创作共用署名许可证,可以通过访问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
1. 介绍
Subversion是什么?
Subversion的历史
Subversion的特性
Subversion的架构
安装Subversion
Subversion的组件
快速入门
2. 基本概念
版本库
版本模型
文件共享的问题
锁定-修改-解锁 方案
拷贝-修改-合并 方案
Subversion实战
工作拷贝
修订版本
工作拷贝怎样追踪版本库
混合修订版本的工作拷贝
更新和提交是分开的
混合修订版本非常正常
混合修订版本很有用
混合修订版本也有限制
摘要
3. 指导教程
帮助!
导入
修订版本: 号码、关键字和日期,噢,我的!
修订版本号
修订版本关键字
修订版本日期
初始化的Checkout
基本的工作周期
更新你的工作拷贝
修改你的工作拷贝
检查你的修改
svn status
svn diff
svn revert
解决冲突(合并别人的修改)
手工合并冲突
拷贝覆盖你的工作文件
下注:使用svn revert
提交你得修改
检验历史
svn log
svn diff
比较本地修改
比较工作拷贝和版本库
比较版本库与版本库
svn cat
svn list
关于历史的最后一个词
其他有用的命令
svn cleanup
svn import
摘要
4. 分支与合并
什么是分支?
使用分支
创建分支
在分支上工作
分支背后的关键概念
在分支间拷贝修改
拷贝特定的修改
合并背后的关键概念
合并的最佳实践
手工追踪合并
预览合并
合并冲突
关注还是忽视祖先
常见用例
合并一条分支到另一支
取消修改
找回删除的项目
常用分支模式
发布分支
特性分支
转换工作拷贝
标签
建立最简单的标签
建立复杂的标签
分支维护
版本库布局
数据的生命周期
摘要
5. 版本库管理
版本库基本知识
理解事务和修订版本
未受版本控制的属性
版本库数据存储
Berkeley DB
FSFS
版本库的创建和配置
钩子脚本
Berkeley DB配置
版本库维护
管理员的工具箱
svnlook
svnadmin
svndumpfilter
Berkeley DB工具
版本库清理
管理磁盘空间
版本库的恢复
版本库的移植
版本库备份
添加项目
选择一种版本库布局
创建布局,导入初始数据
摘要
6. 配置服务器
概述
网络模型
请求和响应
客户端凭证缓存
svnserve,一个自定义的服务器
调用服务器
内置的认证和授权
创建一个用户文件和域
设置访问控制
SSH认证和授权
SSH配置技巧
初始设置
控制调用的命令
httpd,Apache的HTTP服务器
必备条件
基本的Apache配置
认证选项
基本HTTP认证
SSL证书管理
授权选项
整体访问控制
每目录访问控制
关闭路径为基础的检查
额外的糖果
版本库浏览
其它特性
支持多种版本库访问方法
7. 高级主题
运行配置区
配置区布局
配置和Windows注册表
配置选项
服务器
config
属性
为什么需要属性?
处理属性
特别属性
svn:executable
svn:mime-type
svn:ignore
svn:keywords
svn:eol-style
svn:externals
svn:special
svn:needs-lock
自动属性设置
锁定
创建锁定
发现锁定
解除和偷窃锁定
锁定交流
Peg和实施修订版本
外部定义
卖主分支
常规的卖主分支管理过程
svn_load_dirs.pl
本地化
理解地区
Subversion对地区的支持
使用外置区别工具
外置diff
外置diff3
Subversion版本库URL
8. 开发者信息
分层的库设计
版本库层
版本库访问层
RA-DAV(使用HTTP/DAV版本库访问)
RA-SVN(自定义协议版本库访问)
RA-Local(直接版本库访问)
你的RA库在这里
客户端层
使用API
Apache可移植运行库
URL和路径需求
使用C和C++以外的语言
进入工作拷贝的管理区
条目文件
原始拷贝和属性文件
WebDAV
使用内存池编程
为Subversion做贡献
加入社区
取得源代码
开始熟悉社区政策
作出修改并测试
贡献你的修改
9. Subversion完全参考
Subversion命令行客户端:svn
svn选项
svn子命令
svn add
svn blame
svn cat
svn checkout
svn cleanup
svn commit
svn copy
svn delete
svn diff
svn export
svn help
svn import
svn info
svn list
svn lock
svn log
svn merge
svn mkdir
svn move
svn propdel
svn propedit
svn propget
svn proplist
svn propset
svn resolved
svn revert
svn status
svn switch
svn unlock
svn update
svnadmin
svnadmin Switches
svnadmin Subcommands
svnadmin create
svnadmin deltify
svnadmin dump
svnadmin help
svnadmin hotcopy
svnadmin list-dblogs
svnadmin list-unused-dblogs
svnadmin load
svnadmin lslocks
svnadmin lstxns
svnadmin recover
svnadmin rmlocks
svnadmin rmtxns
svnadmin setlog
svnadmin verify
svnlook
svnlook选项
svnlook
svnlook author
svnlook cat
svnlook changed
svnlook date
svnlook diff
svnlook dirs-changed
svnlook help
svnlook history
svnlook info
svnlook lock
svnlook log
svnlook propget
svnlook proplist
svnlook tree
svnlook uuid
svnlook youngest
svnserve
svnserve选项
svnversion
svnversion
mod_dav_svn
mod_dav_svn Configuration Directives
Subversion properties
Subversion定义的属性
A. Subversion对于CVS用户
修订版本号现在不同了
目录的版本
更多离线操作
区分状态和更新
Status
Update
分支和标签
元数据属性
冲突解决
二进制文件和转化
版本化的模块
认证
转化CVS版本库到Subversion
B. WebDAV和自动版本化
WebDAV基本概念
最初的WebDAV
DeltaV扩展
Subversion和DeltaV
自动版本化
客户端交互性
独立WebDAV应用程序
Microsoft Office,Dreamweaver,Photoshop
Cadaver,DAV Explorer
文件浏览器WebDAV扩展
Microsoft网络文件夹
Nautilus,Konqueror
WebDAV文件系统实现
WebDrive,NetDrive
Mac OS X
Linux davfs2
C. 第三方工具
客户端和插件
语言绑定
版本库转化
高级工具
版本库浏览工具
D. 版权
术语表