VCS迁移到Git - 我的方法是什么?

时间:2011-05-16 17:05:46

标签: svn git version-control

我刚刚使用SVN for VCS继承了一个大型Web项目。没有分支机构,过去四个月该项目已经放弃 - 它非常稳定。

我计划在有机会时将SVN迁移到Git(使用gitosis) - 所以我将把SVN历史转换为我正在实施的新Git存储库的主分支。

由于这里有无数其他问题,我肯定已经涵盖了那部分 - 从那里开始,我计划为每个开发阶段创建一个分支 - alpha,dev,stage和prod,并拥有这些服务器{{1他们“所属”的分支。我还计划向上合并(提交到alpha,与dev合并,与舞台合并等等)和pull到prod。

我认为这是这种环境的最佳方案,但我想知道在开始之前是否有任何问题或任何我应该注意的问题。非常感谢您的见解!

2 个答案:

答案 0 :(得分:2)

有一件事是你必须有一个作者地图文件,它将使用用户名和电子邮件将SVN用户名应用于Git用户。有脚本可以生成这样的作者文件,例如:

svn log | grep -E "r[0-9]+ \| .+ \|" | awk '{print $3}' | sort | uniq

您可以使用svn2git进行转化。

但我认为你可能已经覆盖了上述两种方法,或者有其他方法可以做到这一点,但只是提及作者文件可能在许多地方都没有提及。

您还可以查看git-flow以确定您和您团队的工作流程。

答案 1 :(得分:2)

您可以考虑:

  • 使用gitolite代替过时的gitosis(对于授权层)
  • 创建几个Git repo,用于隔离初始SVN repo的相干子集。
  • 考虑到DVCS不存在的identification and authorization aspects:即使您要映射SVN用户进行迁移(如manojlds中的his answer所述),也没有一旦他们使用新的Git仓库,就阻止他们使用他们想要的任何'user.name'。