1

我的任务是将整个 PVCS 存储库迁移到 git,包括所有历史记录。我想出的唯一方法是运行 PVCS VLOG 命令以将修订历史记录(所有文件)提取到文件中,然后解析该文件(使用 C# 程序)以获取修订列表对于每个文件。然后逐个修订,我从 PVCS 获取文件的给定修订,将文件添加到 GIT 并执行 COMMIT。因此,对于大约 14,000 个文件中的每一个,我都会对文件的每个修订版进行提交(每个文件可能有 1-100 多个修订版)。我疯狂地认为这会奏效吗?是否会有太多的提交使 repo 变得太大和笨重?

感谢您对此的任何帮助!

4

1 回答 1

1

免责声明:我对 PVCS 并不特别熟悉。

但是,我已经处理了将 CVS 转换为 Git 的类似问题。有一个 git 命令 cvsimport,它根据时间、提交者和消息对文件提交进行分组。如果有可以将 PVCS 转换为 CVS 或 svn 的工具(Git 也有 svn 导入),那么只需分两步进行转换。

否则,我建议修改您的程序,如下所示:

  • 按日期对所有提交(跨文件)进行排序
  • 对于每个提交
    • 如果提交者、日期或消息与之前的提交不同,则提交
    • 获取当前提交的文件内容

显然,日期不必完全匹配。确定什么被认为是相同的提交。此外,您可能希望允许将类似的提交消息视为相同的提交,例如,如果它们具有相同的错误跟踪编号。

考虑使用git fast-importwhich 绕过索引以获得更快的处理时间。

于 2015-02-27T09:53:23.790 回答