我们是一个正在考虑使用Unreal Development Kit开发游戏的团队,我们正在寻找版本控制解决方案。
我一直更喜欢像Git和Mercurial这样的去中心化VCS,并将其用于我所有的个人项目。虽然我听说过使用这些系统进行游戏开发的问题,因为它们不适合大的二进制文件。
Subversion似乎是一个很好的解决方案,但是我过去根本没有使用过它,所以我真的不知道它提供了什么。
发布于 2011-11-28 07:57:49
您可以使用Mercurial或Git,没有问题。我不知道为什么@TomTom会以这样一种方式陈述,但没有提供任何关于原因的暗示。
当然,你将不得不管理每个游戏开发附带的各种二进制文件(电影、纹理、贴图等)。但这两种软件都有处理它们的方法。
汞
Mercurial有各种扩展来处理大文件,特别是二进制文件。
从2.0版本开始,Large File extension包含在Mercurial中,您无需下载任何其他内容即可使用它。文件不会直接存储在存储库中,但Mercurial会跟踪每个变更集所需的文件版本,以便您可以在需要时使用正确的文件下载游戏的精确版本。
在2.0之前,主要使用两个扩展:
中的其他两个更复杂
Git
我对Git处理大文件的可能性并不是很熟悉,但我知道有各种解决方案。这篇文章应该给出一些好的建议:Managing large binary files with git
我听说过很多关于git-annex的好话。
SVN
我曾经使用SVN处理过大文件,我没有印象中它比Mercurial (没有扩展名)更好地管理它们。
如果你决定使用一个扩展来管理Mercurial / Git的大文件,Subversion在功能方面远远落后。
结论
关于你关心的保持二进制文件版本与源代码同步的问题,bot Mercurial和Git扩展很好地处理了这一问题。
二进制文件的每个版本都存储在单独的集中式目录( Mercurial术语中的largefile store )中,当开发人员克隆存储库或更新到特定的变更集时,只从该存储区下载所需的文件。
你甚至可以对不同的存储库使用相同的存储!
向存储添加文件或更新文件的过程对开发人员来说几乎是透明的,因此,例如,学习曲线很长是没有问题的。
总而言之,我真的不明白为什么Git或Mercurial不能胜任这项任务,也没有其他答案给出任何真正的原因。
在我看来,大型游戏公司坚持使用旧的工具,因为改变需要时间,当你为某些东西付费时,你就会使用它!有多少公司仍然在使用VSS或CVS,仅仅是因为公司层级不会听到任何关于其他事情的消息?我们上个月刚从VSS迁移到TFS,我在那里工作...
发布于 2011-11-27 21:16:49
我会坚持使用Git。在存储大型二进制文件时,您可能会失去什么,但在能够作为一个团队一起工作时,您将获得更多。您将更新、更改和合并代码,而不仅仅是存储二进制文件,而且DVCS可以更好地处理这一点。
发布于 2011-11-27 21:22:51
Hq(Mercurial) 2.0对大文件的支持非常好。
以前它是LargefilesExtension,但从2.0版开始,它与核心一起分发。
https://stackoverflow.com/questions/8285801
复制相似问题