将CVS和Git repos连接成一个Git仓库

时间:2016-05-29 17:41:30

标签: git github version-control merge cvs

这是一个多阶段问题。我在寻找 完成它的当前技术水平 并将不相连的资源联系起来 部分。

我需要的简短故事:

  1. 将完整历史CVS回购转换为git作为基础
  2. 在上面的
  3. 之上连接同一个项目的现有git repo
  4. 在github上发布合并的repo
  5. 从第2步合并叉子
  6. 我的问题如下(较长的故事):

    • 我有一个相对较大的原创CVS回购,让我们称之为O_cvs 有一些分支,标签等,有超过10年的历史。
    • 在某个时刻,制作了一份该回购O_cvs的结帐副本(其中之一) 并推入Git仓库作为起点,让我们称之为O_git。那里 没有进一步提交O_cvs;迁移后O_cvs计划进一步开发。
    • O_git添加了许多功能,项目分叉,其中一些 是通过拉取请求合并而有些不是,例如F1_gitF2_git等。

    因此,我的计划在适当的地方提出问题:

    1. 我关心O_cvs中的历史,贡献者和标签 喜欢保留作为基础。 结果我想制作一个回购,让我们从G_git称它为O_cvs(本地?)。 目前推荐的工具是什么? 为了我?我在这里和其他地方研究过,发现了不同的建议 多年来发布的内容,例如herehereand here
    2. 然后,我计划在GitHub上发布G_git(此处只有问题,这是订单),G
    3. 我关心O_git及其在其他地方托管的叉子,所以我将其拉进去。
    4. 我想连接G_git + O_git的历史记录,并将它们推送到GitHub,进入合并的回购G。 从我的研究和#34;嫁接"快速进口似乎是去这里的方式。
      • 我将graft O_git发送到GitHub上的G_git(在将G_git推送到GitHub之前是否应该进行嫁接?)
    5. 我会处理来自O_gitF1_gitF2_git的拉取请求(可能需要一段时间,但G需要尽早退出)以整合它们进入G(会有问题吗?我是否必须经过O_git的中间步骤,然后通过另一个远程转到G?)
    6. 对当前工具和上述顺序以及相关陷阱的建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

最佳推荐解决方案(我在该问题上经验丰富)是将CVS repo保持为只读存储库,并将最新修订版合并到没有历史记录的git存储库。从长远来看,你将从中受益匪浅!

关于迁移工具,请尝试(我的工具):https://github.com/tikalk/tikal-alm-tools