- 语法: import [-options] repository vendortag releasetag...
- 要求: 仓库,源码目录。
- 修改: 仓库。
使用 import
从外部(例如,源码提供商)将整个源码分发并入你的源码仓库目录。你可以用这个命令初始化建立一个仓库,和从外部源码大批更新模块。参阅 Tracking sources, 了解有关此话题的讨论。
repository 参数给出仓库中 cvs 根目录下的目录名(或者目录的路径); 如此目录不存在,import 将创建一个。
当你使用 import 更新已经仓库里面修改过的源码时(从上次 import),它会提示在两个开发分支上有冲突的文件,import 会指示你使用 `checkout -j' 去处理。
如果 cvs 决定忽略某个文件(参阅 cvsignore),它不会导入该文件并在文件名前打印 `I ' (*参阅 import output,了解输出的完整说明)。
如果 $CVSROOT/CVSROOT/cvswrappers 文件存在,文件名匹配该文件中相应规格的文件将以包对待,并在导入前对此文件/目录执行相应的过滤程序。参阅 Wrappers.
外部的源码保存到第一级分支,默认为 1.1.1。以后更新也在这个分支上; 例如,首次导入源码的修订版为 1.1.1.1,更新后是 1.1.1.2,依此类推。
最少需要三个参数。repository 用于辨识源码集合。vendortag 是分支 (如,1.1.1)的标签。你还需指定 releasetag 用来识别每次执行 import
建立的文件。releasetag 应为新建的,而非已经存在的标签,以便唯一确定导入的发行。
注意 import
不会修改执行时的目录。特别要指出的,是它不会建立一个目录作为 cvs 的工作目录; 如果你打算修改导入的这些文件,要先将它们导出到另外一个目录 (参阅 Getting the source)。
import 选项
import
支持的标准选项(参阅 Common options,了解完整说明):
- 使用 message 作为日志消息,而不是打开编辑器。
-m
message
另外还有下列额外的选项。
-
见
Multiple vendor branches.
-
指出所需的关键字替换模式。此项设定会应用到导入的所有文件,但不影响仓库中已存在的文件。见
Substitution modes,了解有效的 `
-k' 设置列表。
-
指定导入时忽略的文件名。你可以重复使用此选项。要避免某些文件被忽略(即使是默认忽略的文件),指定为 `-I !'。
name 可以是文件名模板,与 .cvsignore 文件中使用的类型相同。参阅 cvsignore.
-
指定导入时需要过滤的文件名。你可以重复使用此选项。
spec 可以是文件名模板,与 .cvswrappers 文件中使用的类型相同。参阅 Wrappers.
-
修改
cvs 的机制,让新导入的文件不会立即出现在主干上。
特别是,此标识让 cvs 标注新文件如同它们在主干上已被删除,除了正常的导入之外,还需为每个文件进行下面的步骤: 在主干上创建新版本,标识新文件是
dead
,重置新文件的默认分支,将文件放到 Attic (参阅 Attic) 目录。要强制在仓库范围内使用此选项,在 CVSROOT/config (参阅 config) 文件设置 `ImportNewFilesToVendorBranchOnly' 选项。
-b
branch
-k
subst
-I
name
-W
spec
-X
import 的输出
import
过程中会为每个文件打印一行进度信息,行头用一个子母标记文件状态:
-
在仓库里面已经存在,并且本地没有修改; (如果需要)会创建新的修订版。
-
此为新文件,已经添加到仓库。
-
仓库里面已经存在,并且本地有修改; 你需要合并变更。
- 文件被忽略 (参阅 cvsignore)。
-
文件为符号链接;
cvs import
忽略符号链接。经常有人建议修改这项行为,但改成什么样,还没有明确。(在 modules 文件里面有很多选项可以检出,更新等操作中重建符号链接; 参阅 modules)
U
file
N
file
C
file
I
file
L
file