添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
git cvsimport [-o <HEAD 分支>] [-h] [-v] [-d <CVSROOT>]
	      [-A <author-conv-file>] [-p <options-for-cvsps>] [-P <文件>]
	      [-C <Git 仓库>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>]
	      [-a] [-m] [-M <正则表达式>] [-S <正则表达式>] [-L <提交范围>]
	      [-r <远程仓库>] [-R] [<CVS 模块>]

警告: git cvsimport 使用 cvsps 第 2 版,该版本已被视为弃用;它不能用于 cvsps 第 3 版及更高版本。 如果要一次性导入 CVS 仓库,请考虑使用 cvs2git cvs-fast-export

将 CVS 仓库导入 Git。它既可以创建一个新的仓库,也可以增量导入现有仓库。

将 CVS 日志分割成补丁集由 cvsps 完成。 至少需要 2.1 版本。

警告: 在某些情况下,导入会导致不正确的结果。请参阅 ISSUES 部分以获取更多参考。

您*绝对不*应该在 git cvsimport 创建的分支上做任何自己的工作。 默认情况下,初始导入会从 CVS 仓库的主分支创建并填充一个 "master" 分支,您可以自由使用该分支;之后,您需要自己 git merge 增量导入或任何 CVS 分支。 建议通过 -r 指定一个命名的远程分支,以分隔和保护导入的分支。

如果你打算建立一个所有开发者都能读写的共享公共仓库,或者如果你想使用 git-cvsserver[1] ,那么你可能想做一个导入仓库的裸克隆,并将该克隆作为共享仓库。 参见 gitcvs-migration[7]

-d <CVSROOT>

CVS 存档的根目录。可以是本地(简单路径)或远程;目前只支持 :local:、:ext: 和 :pserver: 访问方法。如果没有给出, git cvsimport 将尝试从 CVS/Root 中读取。如果没有此类文件,则会检查 CVSROOT 环境变量。

<CVS_module>

要导入的 CVS 模块。相对于 <CVSROOT>。 如果没有给出,/git cvsimport' 会尝试从 CVS/Repository 中读取。

-C <目标目录>

要导入的 Git 仓库。 如果目录不存在,则会创建。 默认为当前目录。

-r <远程仓库>

要导入此 CVS 仓库的 Git 远程仓库。 将所有 CVS 分支移至 remotes/<远程仓库>/<分支>,类似于 git clone 默认使用 origin 的方式。

-o <branch-for-HEAD>

如果没有指定远程分支(通过 -r),CVS 中的 HEAD 分支会被导入 Git 仓库中的 origin 分支,因为 HEAD 对 Git 已经有了特殊含义。 如果指定了一个远程分支, HEAD 分支就会被命名为 remotes/<远程仓库>/master,以反映 git clone 行为。 如果要导入不同的分支,请使用此选项。

使用 -o master 继续导入最初由旧版 cvs2git 工具完成的导入。

仅导入:导入后不执行检出。 该选项可确保工作目录和索引保持不变,如果不存在也不会创建。

杀死关键字:将从 CVS 存档中提取带有 -kk 的文件,以避免出现嘈杂的更改集。强烈建议使用,但默认为关闭,以保持与早期导入树的兼容性。

将标记和分支名称中的下划线转换为点。

-s <subst>

用 <subst> 代替分支名称中的字符"/"

-p <options-for-cvsps>

cvsps 的附加选项。 选项 -u -A 是隐含的,不应在此使用。

如果需要传递多个选项,请用逗号分隔。

-z <fuzz>

向 cvsps 传递时间戳模糊因子,单位为秒。如果未设置,cvsps 默认为 300 秒。

-P <cvsps 输出文件>

不调用 cvsps,而是读取提供的 cvsps 输出文件。在调试或在 cvsimport 之外处理 cvsps 时非常有用。

尝试根据提交信息检测合并。该选项将启用默认的 regexes,尝试从提交信息中捕捉源分支名称。

-M <正则表达式>

尝试使用自定义正则表达式根据提交信息检测合并。也可与 -m 搭配使用,启用默认的 regexes。必须转义为正斜杠。

正则表达式必须在 $1 中捕获源分支名称。

该选项可多次使用,以提供多个检测 regexes。

-S <正则表达式>

跳过与正则表达式匹配的路径。

cvsimport 默认跳过时间戳少于 10 分钟的提交。

-L <限制>

限制导入的提交次数。针对 cvsimport 泄露内存情况的解决方法。

-A <作者的 conv 文件>

CVS 在编写提交日志时默认使用 Unix 用户名。使用此选项和 author-conv 文件可将 CVS 中记录的姓名映射为作者姓名、电子邮件和可选的时区:

	exon=Andreas Ericsson <[email protected]>
	spawn=Simon Pawn <[email protected]> America/Chicago

git cvsimport 将使这些作者的 GIT_AUTHOR_NAME 和 GIT_AUTHOR_EMAIL 一直设置正确。 如果指定了时区,GIT_AUTHOR_DATE 将应用相应的偏移量。

为方便起见,每次提供 -A 选项时,这些数据都会被保存到 $GIT_DIR/cvs-authors 中,每次运行 git cvsimport 时,都会从同一文件中读取这些数据。

如果您打算稍后再用 git cvsexportcommit 将更改导出回 CVS,则不建议使用此功能。

生成一个 $GIT_DIR/cvs-revisions 文件,其中包含从 CVS 版本号到新创建的 Git 提交 ID 的映射。 生成的文件将为导入的每一对(文件名、修订版)包含一行;每行看起来像

src/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7

如果已存在修订数据,则会将其附加到文件中,以便在进行增量导入时使用。

如果在提交信息、错误跟踪系统、电子邮件归档等中存储了 CVS 版本号,该选项可能会很有用。

打印简短的使用信息并退出。