将一个大型的旧Java项目移植到Git

时间:2015-01-09 12:35:20

标签: java git svn

我有一个非常结构良好的大项目,在我的团队的SVN中维护。我们不想转向Git - 它将进一步与Teamcity或Jenkins等集成服务器集成(尚待决定)。 当我看到svn时,我发现因为svn允许你从任何地方创建标签 - 它有很多只包含单个单项目的标签。 代码库非常庞大,我在一个git仓库中导入了所有代码。一种方法是每个项目 - 我可以创建单独的回购,或将一些项目合并到一个回购(不确定)

我想要实现的是我希望保留所有历史并打破回购,以便管理变得容易。 (此外,在与jenkins集成以便在每次提交时自动构建时,它将会有所帮助)

如何确保保留历史记录,拥有所有现有标记,然后转到git

2 个答案:

答案 0 :(得分:3)

git-svn是帮助这种迁移的明显解决方案,但在我看来,这对于从SVN到git的一次性迁移更好。

如果你想保持SVN和git存储库都存活并允许两者都提交(让它们保持同步),我建议SubGit

答案 1 :(得分:0)

当我们从svn转移到git时,我发现this stackoverflow post非常有帮助,特别是第二个答案。我从你的描述中假设一切都在一个主干下。这确实让它变得有点复杂。我之前没有尝试过移动个别项目,但您可以通过以下两种方式之一来完成:

  1. 将整个svn repo,标签,分支等迁移到本地git仓库(在推送到远程之前)。然后按照(this)stackoverflow帖子中的建议分解项目。这应该给你个人回购,然后你可以推送到远程回购。

  2. 您可以在运行svn到git转换时更改步骤并指定单个项目,但这似乎很危险且令人困惑,因为标签/分支不一定排队。