关于我的问题的一些背景知识,接下来是一些问题:
我的团队将SVN用于许多游戏开发项目,并且在过去的几年里它一直很好用。但是,我们最近一直在探索是否应该转移到Git,原因如下:
我们想使用Bitbucket,因为我们可以更轻松地与外部承包商合作,而不是在公司防火墙后面使用SVN回购。
我们使用git-svn工具将我们的项目转换为Git仓库。 Git repo最终成为历史上的6GB!不幸的是,这对于Bitbucket和Github来说太大了,他们都强制执行1-2GB限制。
这引起了一场信仰危机"至于我们是否通过从SVN切换到Git做出了正确的决定。你可以在网上找到很多意见,认为Git对游戏开发并不好,或者二进制文件很头疼。我们的计划是将源艺术文件保存在SVN中,但任何" final" SVN中存在游戏的艺术资产。此外,一组共享库将存在于链接到我们游戏的repo的单独Git存储库中(使用子树或某些依赖关系管理系统,很可能)。
我正在寻找几个方面的答案/反馈:
那些不得不踏上这条道路的人的任何反馈或见解都会很棒!
答案 0 :(得分:0)
我还没有将Git用于游戏开发,而是用于拥有大量视频资源的多媒体开发。
我们所做的与你的建议相似;我们将大型资产保存在一个单独的子模块中。它需要一些培训(可能还有一些包装脚本使普通案例变得更容易,我不记得),让每个人都习惯使用子模块,但是一旦完成,它就会很顺利地完成。< / p>
我们甚至允许资产在子模块中更改,一旦它变得太大,我们就创建了一个新的repo并将子模块切换到那个。这意味着你没有在两个部分之间获得历史记录,但由于它们是不太重要的二进制文件,你总是可以使用<body>
<div class="main">
<div class="container">
<div class="row">
<div class="col-sm-5 col-sm-offset-7">
<h1>70°</h1>
<h2>5-day forecast</h2>
<div class="forecast">
<div class="day row">
<div class="weekday col-xs-4">
<span class="glyphicon glyphicon-plus"></span>
<p>today</p>
</div>
将两个存储库的历史拼接在一起如果你想支付检查大型二元仓库的费用,请获取完整的历史记录。
所以是的,我会说Git可以为这个用例工作,只要你保持主存储库的合理大小和文本,并分别管理你的资产。无论是在SVN中导出并以某种方式导出,在Git子模块中打破历史记录,还是通过像git-annex这样的东西,你可能需要弄清楚取决于尝试几个接近并看到你认为最合适的那个。