导入如果您要导入到已有的版本库中,该版本库已经包含了一些项目,那么版本库的结构就早已确定了。如果您要将数据导入到新的版本库中,

导入如果您要导入到已有的版本库中,该版本库已经包含了一些项目,那么版本库的结构就早已确定了。如果您要将数据导入到新的版本库中,那么就值得花时间考虑如何组织它。阅读名为“版本库布局”的章节以获取更多建议。

本节描述了 Subversion 的 import 命令,该命令旨在一次性将目录层次结构导入到版本库中。尽管它完成了这项工作,但它也有一些缺点

除了使用全局忽略设置外,没有其他方法可以选择要包含的文件和文件夹。

导入的文件夹不会成为工作副本。您必须执行检出才能将文件从服务器复制回来。

很容易导入到版本库中错误的文件夹级别。

由于这些原因,我们建议您完全不要使用 import 命令,而是遵循名为“就地导入”的章节中描述的两步方法,除非您正在执行简单的步骤,即在您的版本库中创建初始的 /trunk /tags /branches 结构。既然您在这里,那么这就是基本导入的工作方式...

在将您的项目导入到版本库之前,您应该

删除所有构建项目不需要的文件(临时文件、编译器生成的文件,例如 *.obj、编译后的二进制文件等)

在文件夹和子文件夹中组织文件。尽管以后可以重命名/移动文件,但强烈建议在导入之前理顺您的项目结构!

现在在 Windows 资源管理器中选择您项目目录结构的顶层文件夹,然后右键单击以打开上下文菜单。选择命令TortoiseSVN → 导入...,这将弹出一个对话框

图 4.6. 导入对话框

在此对话框中,您必须输入要将项目导入到的版本库位置的 URL。非常重要的是要意识到您正在导入的本地文件夹本身不会出现在版本库中,只有其内容才会出现。例如,如果您有一个结构

C:\Projects\Widget\source

C:\Projects\Widget\doc

C:\Projects\Widget\images

并且您将 C:\Projects\Widget 导入到 http://mydomain.com/svn/trunk 中,那么您可能会惊讶地发现您的子目录直接进入了 trunk,而不是在 Widget 子目录中。您需要将子目录指定为 URL 的一部分,http://mydomain.com/svn/trunk/Widget-X。请注意,如果版本库中不存在子目录,import 命令将自动创建它们。

导入消息用作日志消息。

默认情况下,与全局忽略模式匹配的文件和文件夹不会被导入。要覆盖此行为,您可以使用包含忽略的文件复选框。有关设置全局忽略模式的更多信息,请参阅名为“常规设置”的章节。

一旦您按下确定,TortoiseSVN 就会将完整的目录树(包括所有文件)导入到版本库中。项目现在存储在版本库中并受到版本控制。请注意,您导入的文件夹不受版本控制!要获得受版本控制的工作副本,您需要对刚刚导入的版本执行检出。或者继续阅读以了解如何就地导入文件夹。