Git 用UDK开发游戏的版本控制系统?

Git 用UDK开发游戏的版本控制系统?,git,svn,version-control,mercurial,Git,Svn,Version Control,Mercurial,我们是一个考虑使用制作游戏的团队,我们正在寻找版本控制解决方案 我一直喜欢像Git和Mercurial这样的分散式VCS,并将其用于我所有的个人项目。虽然我听说过使用这些系统进行游戏开发的问题,但是它们不适合大的二进制文件 这似乎是一个很好的解决方案,但是我在过去根本没有使用过它,所以我不知道它提供了什么。我会坚持使用Git。存储大型二进制文件可能会带来的损失,但能够作为一个团队一起工作会带来更多好处。除了存储二进制文件,您还需要更新、更改和合并代码,而DVCSs处理这一问题的能力要强得多。大型

我们是一个考虑使用制作游戏的团队,我们正在寻找版本控制解决方案

我一直喜欢像Git和Mercurial这样的分散式VCS,并将其用于我所有的个人项目。虽然我听说过使用这些系统进行游戏开发的问题,但是它们不适合大的二进制文件


这似乎是一个很好的解决方案,但是我在过去根本没有使用过它,所以我不知道它提供了什么。

我会坚持使用Git。存储大型二进制文件可能会带来的损失,但能够作为一个团队一起工作会带来更多好处。除了存储二进制文件,您还需要更新、更改和合并代码,而DVCSs处理这一问题的能力要强得多。

大型游戏工作室通常使用(老实说,我不知道为什么。)

SVN也是一个不错的选择,但与Git和Mercurial相比,它有点过时

无论如何,为什么要将大型二进制文件放在存储库中?您肯定希望为所有编译的二进制文件等添加忽略行。始终确保只包含源文件:-)

就个人而言,我会坚持使用Mercurial或Git。

支持大文件非常好

以前是,但从2.0版开始,它是与core一起发布的

我一直喜欢Git和Mercurial等分散式VCS

完全无法使用。重点

这里的诀窍是,当您的存储库非常重要时,您不可能拥有一个分布式存储库,而这种重要性(数据量)可能与大多数人无关

如果你做游戏开发,你将拥有成吨的版本控制资产,程序员对此毫无兴趣。即使是大多数图形用户也不会在意。DCS在您可以预期存储库比典型硬盘更大的时候就会崩溃。而且,根据您对图形的了解程度,您可以轻松访问1000 gb以上的opf存储库。作为一名程序员,除了小的测试图形外,不必处理GRPAHIC,就必须将其合并到我的本地存储库中,这一概念让我很恼火——这也让网络管理员发疯了

当你正确处理上面的动画/电影时,情况会变得更糟。每次更改和渲染都是另一个版本。繁荣这已经糟糕到可以在中央存储库(我可以在中央服务器上添加光盘)中处理的地步,在您将光盘分发给每个版本中的每个团队成员时,它就完全不可用了

颠覆似乎是个好办法

如果你能处理好的话,这可能是愚蠢的


我在此强烈推荐prooven解决方案——perforce几乎可以解决prooven问题。

您可以毫无问题地使用Mercurial或Git。我不知道为什么@TomTom会以这种方式声明其他内容,而不提供任何有关原因的提示

当然,您必须管理每个游戏开发附带的各种二进制文件(电影、纹理、地图等)。但这两种软件都有处理它们的方法

汞的 Mercurial有各种扩展来处理大型文件,尤其是二进制文件

从2.0版开始,Mercurial中就包含了,您可以在不下载任何其他内容的情况下使用它。文件不会直接存储在存储库中,但Mercurial会跟踪每个变更集所需的文件版本,因此您可以在需要时使用正确的文件下载游戏的精确版本

在2.0之前,主要使用两种扩展:

  • ,它被用作2.0中新扩展的基础
  • ,在我看来,这比另外两个稍微复杂一点
  • 吉特 我不太熟悉Git处理大文件的可能性,但我知道存在各种解决方案。这篇文章应该给出一些很好的建议:

    我听说过很多关于他的好消息

    SVN 我曾将SVN用于大型文件,但我不认为它比Mercurial(不带扩展名)开箱即用的更好地管理它们

    如果您决定使用Mercurial/Git来管理大型文件,Subversion在功能性方面远远落后

    结论 关于保持二进制文件版本与源代码同步的问题,bot Mercurial和Git扩展可以很好地处理这个问题

    二进制文件的每个版本都存储在一个单独的集中的目录中(Mercurial术语中的
    大型文件存储
    ),当开发人员克隆存储库或更新到特定变更集时,仅从该存储下载所需的文件

    您甚至可以对不同的存储库使用相同的存储

    将文件添加到存储区或更新文件的过程对开发人员几乎是透明的,因此,例如,长学习曲线就没有问题

    总之,我真的不明白为什么Git或Mercurial不能胜任这项任务,也没有其他答案给出任何真正的理由


    在我看来,大型游戏公司坚持使用较旧的工具,因为改变需要时间,当你为某件事付费时,你就使用它!有多少公司仍然在使用VSS或CVS,只是因为层次结构不会听到任何其他信息?我们上个月刚从VSS迁移到TFS,我正在那里工作…

    问题是,UDK游戏中的大多数内容都是二进制的,例如所有地图数据。如果您将二进制文件保留在存储库之外,您将无法签出完整的项目。如果在不同版本之间更改一些图形,然后签出以前的版本,则图形和代码之间的所有连接都将丢失,除非它们位于同一存储库中。啊,是的,没错,但这些文件没有那么大。您肯定会注意到git/mercurial回购会变得越来越大(SVN不会),但这应该是您将面临的唯一问题。@Abizern:我只是指编译的二进制文件。当然,源文件应该始终位于存储库中—即