本文档尚在编写中,内容可能会发生很大变化,可能无法准确描述 Apache™ Subversion® 软件的任何发布版本。将此页面添加为书签或向其他人推荐此页面可能不是一个好主意。请访问 https://svnbook.subversion.org.cn/ 获取此书的稳定版本。

创建工作副本

大多数情况下,您将通过对项目执行 签出 来开始使用 Subversion 仓库。从仓库签出一个目录会在您的本地机器上创建该目录的工作副本。除非另有说明,此副本包含 Subversion 仓库中找到的该目录及其子目录的最年轻(即最近创建或修改)版本。

$ svn checkout http://svn.example.com/svn/repo/trunk
A    trunk/README
A    trunk/INSTALL
A    trunk/src/main.c
A    trunk/src/header.h
…
Checked out revision 8810.
$

虽然前面的示例签出了 trunk 目录,但您也可以通过指定该子目录的 URL 作为签出 URL 来签出仓库的更深的子目录。

$ svn checkout http://svn.example.com/svn/repo/trunk/src
A    src/main.c
A    src/header.h
A    src/lib/helpers.c
…
Checked out revision 8810.
$

由于 Subversion 使用的是复制-修改-合并模型,而不是锁定-修改-解锁模型(请参阅 名为“版本控制模型”的部分),您可以立即对工作副本中的文件和目录进行更改。您的工作副本就像您系统上的任何其他文件和目录集合一样。您可以编辑其中的文件,重命名它,甚至删除整个工作副本并忘记它。

[Warning] 警告

虽然您的工作副本是 就像您系统上的任何其他文件和目录集合一样,您可以随意编辑文件,但您必须告诉 Subversion 您所做的 所有其他操作。例如,如果您想在工作副本中复制或移动项目,您应该使用 svn copysvn move,而不是您的操作系统提供的复制和移动命令。我们将在本章后面详细讨论它们。

除非您准备提交新文件或目录的添加或对现有文件的更改,否则无需进一步通知 Subversion 服务器您已执行任何操作。

请注意,在前面的一对示例中,Subversion 选择在以签出 URL 的最后一个组件命名的目录中创建工作副本。只有在签出 URL 是提供给 svn checkout 命令的唯一信息时,才会发生这种情况。然而,Subversion 的命令行客户端为您提供了额外的灵活性,允许您选择性地指定 Subversion 应该用于创建的工作副本的本地目录名称。例如

$ svn checkout http://svn.example.com/svn/repo/trunk my-working-copy
A    my-working-copy/README
A    my-working-copy/INSTALL
A    my-working-copy/src/main.c
A    my-working-copy/src/header.h
…
Checked out revision 8810.
$

如果您指定的本地目录尚不存在,这没关系——svn checkout 会为您创建它。

TortoiseSVN 官方中文版 1.14.7 发布