我正在尝试将cvs模块导入现有的git仓库。如果我导入一个新的仓库,我可以让它正常工作,但是当我尝试导入到现有的仓库时,似乎决定跳过在我最后一次提交给我指定的分支之前的所有补丁集 - O操作。这就是我目前正在尝试的:
git cvsimport -v -p -x -o cvs -d <cvsroot> -k -u <module>
输出的结尾由以下行组成:
skip patchset 26: 1258578534 before 1259081502
如果我删除“-o cvs”,则失败并显示:
Branch 'origin' does not exist.
Either use the correct '-o branch' option,
or import to a new repository.
那么,如何让git cvsimport导入所有内容?
答案 0 :(得分:2)
导入新的存储库,将新分支复制到当前存储库中,然后重新编写分支,以便在您已经获得的内容之后,如果这就是您所追求的目标。
或者,如果您尝试通过一次转换模块来复制多模块CVS结帐,则可能需要尝试一次性转换它...
将每个模块转换为git,将每个分支拉入单个存储库然后创建一个提交,每个分支头作为父级,将每个模块放在树中的正确位置。这并不能很好地保留单个模块历史中的并发性。
答案 1 :(得分:2)
诀窍很简单:
因此:
$ mkdir my_repo $ cd my_repo $ git init $ touch test $ git add test $ git commit -m "Initial commit" --date="1990-01-01 00:00:00"
现在运行git cvsimport,其中-C标志指向您的git存储库文件夹。 git cvsimport将在分支头部之前跳过带有时间戳的补丁(请参阅-o标志)。