Subversion快速上手
时间:2006-08-11 来源:wxgchinaunix
快速上手
有些人难于靠阅读本书提供的自顶向下的途径来吸收新技术。这一节将给出一个非常简短的对Subversion 的介绍,这是为那些习惯于自底向上学习的人设计的。如果你是这种愿意从实际体验来学习的人,以下的演示将带你起步。随着演示的进程,我们给出了本书的相应章节的链接。
如果你对版本控制完全没有概念,或对CVS和Subversion使用的“复制-修改-合并”模式不了解。那么在开始前,你应该读一下第二章基本概念。
注意
注意:以下例子假设你安装好了Subversion 命令行客户工具svn,和管理工具svnadmin。还假定你的svn客户程序是基于Berkeley DB编译的。要验证这些,运行svn --version,确认ra_local模块可用。如果没有这个模块,客户程序无法访问file://这样的URL。
Subversion 把所有的版本化数据保存在中央资料库。所以,首先要创建一个新的资料库:
$ svnadmin create /path/to/repos $ ls /path/to/repos conf/ dav/ db/ format hooks/ locks/ README.txt
这条命令创建了一个新目录/path/to/repos,该目录包含一个Subversion 资料库。请确认这个目录是在本地硬盘上而不是网络共享。这个目录主要包括一组Berkeley DB数据库文件。如果你进入这个目录,也看不到你的版本化文件。关于资料库的创建和维护的更多信息,参见第 5 章 资料库管理
接下来,创建一个文件和目录树以便导入到资料库。你创建的目录树应该包括三个顶级目录,分别命名为branches, tags和trunk。这么做的原因很快就清楚了(参见第 4 章 分支和合并):
/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 不知道它(事实上,如果你愿意的话删除它也没关系) 。为了开始操作资料库数据,你需要创建数据的一个新的“工作副本”,一种私有的工作区。以下命令让Subversion “检出”资料库中trunk目录的一个工作副本。
$ svn checkout file:///path/to/repos/trunk project A project/foo.c A project/bar.c A project/Makefile … Checked out revision 1.
现在你有资料库中数据的一份个人拷贝,放在一个名为project的新目录中。你可以编辑这些在你工作副本中的文件然后将变化提交到资料库。
-
进到你的工作副本并编辑一个文件的内容
-
运行svn diff来查看你的改动的标准diff输出
-
运行 svn commit 把文件的新版本提交到资料库
-
运行svn update 让你的工作副本和资料库中最新的数据同步