【发布时间】:2016-02-16 13:06:00
【问题描述】:
关于我的问题的一些背景知识,然后是一些问题:
我的团队将 SVN 用于许多游戏开发项目,并且在过去几年中为我们提供了良好的服务。但是,我们最近一直在探索是否应该迁移到 Git,原因如下:
- 我们相信,Git 的分支功能将开启有益的编码工作流程和实践,这些工作流和实践在 SVN 中是困难的或不可能的(功能分支、合并前的代码审查、拉取请求)。
- 我们团队的一些新成员从一家使用 Git 的游戏公司来到我们这里,他们感叹 SVN 中缺少 X 或 Y 功能。
- SVN 相关工具的更新/维护似乎比以前少。简而言之,Git 和类似的东西很流行,而 SVN 正在变得不那么流行。
我们希望使用 Bitbucket,因为我们可以更轻松地与外部承包商协作,而不是在公司防火墙后面使用 SVN 存储库。
我们使用 git-svn 工具将我们的项目转换为 Git 存储库。 Git repo 最终变成了 6GB 的所有历史记录!不幸的是,这对于 Bitbucket 和 Github 来说太大了,它们都实施了 1-2GB 的限制。
这引起了一点“信仰危机”,即我们从 SVN 切换到 Git 是否做出了正确的决定。你可以在网上找到很多关于 Git 不适合游戏开发或者二进制文件令人头疼的意见。我们的计划是将源美术文件保存在 SVN 中,但游戏的任何“最终”美术资源都将存在于 SVN 中。此外,一组共享库将存在于链接到我们游戏存储库的单独 Git 存储库中(很可能使用子树或某些依赖管理系统)。
我正在寻找几个方面的答案/反馈:
- 对于 Git 存储库来说,6GB 是否过于笨重?人们是否能够有效地使用它,或者它可能没有响应或难以推送到遥控器?
- 将大型 Git 存储库拆分为几个较小的存储库以回避任何“大型存储库”问题是否合理?想一想,这似乎是一团糟,并且构建一个项目以适应版本控制限制并不适合我。克隆似乎也有问题 - 您需要单独克隆每个 repo,还是可以一次性完成?
- 其他人是否成功地将 Git 用于此类游戏开发项目,如果是,使用了哪些策略使工作流程尽可能简单?我们是否会花费更多时间来为我们的竞标争取版本控制,而不是实际开发游戏!?
那些不得不走这条路的人的任何反馈或见解都会很棒!
【问题讨论】:
-
只要你还没有迁移,想想 Mercurial+LargeFiles - 更多利润,少很多头痛
标签: git svn version-control