导入数据到版本库
导入如果将项目导入一个已经含有其它项目的版本库中,那么版本库的结构已经确定了。如果要导入一个新的版本库中,那么最好花点时间来想一下如何设置版本库的结构。阅读 “版本库布局”一节 获得更多建议。
这部分描述了Subversion 导入命令,它被设计用于一次性导入一个文件夹的层次结构到版本库中。尽管它能完成这个工作,但是它还是有不少缺点:
不能选择包括哪些文件或文件夹,除非使用全局忽略设置。
导入的文件夹不能变成工作副本。你必须通过签出操作从服务器拿回文件。
很容易导入到版本库中错误的文件夹层次。
基于此,我们推荐你不要使用导入命令,而是按照“导入适当的位置”一节描述的的两步方法,除非你正在你的版本库创建一个初始的/trunk /tags /branches结构的简单步骤中。既然你做到了这里,这些是基本导入工作的方法:
在将你的项目导入到版本库之前,你应该:
删除所有构建工程不需要的文件(临时文件,编译器产生的文件,例如 *.obj,生成的二进制文件,...)
组织目录和子目录内的文件。尽管以后可以改名/删除文件,我们还是建议你在导入之前使你的项目结构组织良好!
现在进入资源管理器,选择你的项目的顶层目录,右击打开上下文菜单。选择命令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。注意,如果版本库中不存在指定的子目录,导入命令将会自动创建它们。
这个输入信息将用作提交日志。
默认情况下,匹配全局忽略模式的文件和文件夹不会被导入。你可以使用包含忽略文件检验栏来禁止此行为。参考“常规设置”一节以获得关于全局忽略模式的更多信息。
当你点击确认时,TortoiseSVN 会导入包含所有文件的完整目录树到版本库。现在这个工程就存贮在版本库,被版本控制。请注意,你导入的文件夹没有被版本控制!你需要检出刚才导入的版本,以便获得受版本控制的工作副本。或者继续阅读,找到如何导入文件夹到合适的位置。