用来创建、tweaking或者是修复仓库的工具;
svndumpfilter
A program for filtering Subversion repository dumpfile format streams.
mod_dav_svn
Apache 服务器的一个插件模块,用来使其他人可以通过网络访问这个仓库;
svnserve
一个定制的、独立的 Subversion 服务程序。可作为一个驻留进程运行或者是由 SSH 调用。是使仓库可以被别人通过网络访问的另一种方法。
假如你正确的安装了 Subversion ,你应该可以开始使用了。接下来的两章将为你介绍 Subversion 的命令行工具 svn 的使用。
1.7 快速入门
在我们当中,可能有些人不是很习惯从头到尾的阅读一本书来吸收新技术的方式。这一节,我们将先行给出一个 Subversion 的使用介绍。心急的读者可以有机会通过实践来学习使用 Subversion 的技巧。同时,我们会告诉你到哪一章节可以找到相关的东西。
如果你对版本控制的整体概念很生疏,或者对 CVS 和 Subversion 使用的"复制―修改―合并"模型不熟悉的话,最好在往下读之前先去仔细看一下第二章――基本概念。
注意:
在运行下面的例子之前,你必须保证下面两个工具可以正确运行:
svn 命令行式的客户端程序;
svnadmin 管理工具;
同时还必须保证你的 svn 工具是针对 Berkeley DB 编译的。可以运行 svn --version 然后检查 ra_local 模块是否可用来确认。如果没有这个模块,我们的客户端程序将无法访问 file://URLs 。
Subversion 将所有控制的数据都放在一个中央仓库中。所以首先,我们要创建一个这样的仓库:
$ svnadmin create /path/to/repos
$ ls /path/to/repos
conf/ dav/ db/ format hooks/ locks/ README.txt
这个命令创建了一个包含 Subversion 仓库的目录 /path/to/repos 。另外,这个目录必须创建在本地磁盘,而不能是在网络共享磁盘上。该目录主要包含了一些 Berkeley DB 的文件。在这个目录中,你是找不到所保存的文件的。在第五章――仓库管理中可以找到更多的有关于仓库创建和维护的知识。
下一步,准备一个类似下面例子中的用来导入的文件、目录树。在树结构中,应该包含三个顶层目录:branches、tags 和 trunk。具体的原因后面便会清楚了(参见第四章――分支和合并)。
/tmp/project/branches/
/tmp/project/tags/
/tmp/project/trunk/
foo.c
bar.c
Makefile
...
一旦你准备好了目录树,就可以使用 svn import 命令来导入数据到仓库中了(参见"svn import"一节):
$ svn import /tmp/project file:///path/to/repos -m "initial import"
Adding /tmp/project/branches
Adding /tmp/project/tags
Adding /tmp/project/trunk
Adding /tmp/project/trunk/foo.c
Adding /tmp/project/trunk/bar.c
Adding /tmp/project/trunk/Makefile
...
Committed revision 1.
$
现在,仓库中就有了整个目录树中的数据。注意,原始的 /tmp/project 目录并没有变化,Subversion 并不使用它。(实际上,如果你愿意的话,可以删除该目录)。为了开始操作仓库中的数据,我们需要先创建一个数据的"工作副本(working copy)"出来。这类似于一种私有的工作区。向 Subversion "check out"(借出)一份仓库中 trunk 目录的工作副本:
$ svn checkout file:///path/to/repos/trunk project
A project/foo.c
A project/bar.c
