代码之家  ›  专栏  ›  技术社区  ›  Conceited Code

我们最终能转向公司软件中的DVCS吗?SVN仍然是发展的“必备品”吗?[关闭]

  •  31
  • Conceited Code  · 技术社区  · 14 年前

    有什么理由继续使用SVN吗?Mercurial/Git终于可以被公司采用了吗?

    11 回复  |  直到 14 年前
        1
  •  102
  •   Community Sam Holder    7 年前

    一方面,SVN集成(与IDE、frameworks、wiki等)非常成熟,其gui和代码浏览器也非常成熟(尽管像Git和Mercurial这样的dvc每天都在进步)。

    另一方面,在企业环境中引入DVCS仍然不是一项简单的任务:


    说清楚点,用 DVCS是一个非常有效的选择 :

    • 为了一个 开发人员不受遗留工具或流程的束缚
    • 尤其是当开发商的地理位置不在同一个地方时 (通常是开源开发的情况,这就是为什么这里主要使用dvc)。

    StackOverflow(不是开源项目)正在使用Mercurial(请参阅 HgInit, written by Joel Spolsky ).
    它们从SVN迁移到DVCS:

    • 部分原因是他们的开发者现在遍布世界各地(!)
    • 另外,因为DVCS的合并设施比SVN先进得多。
      (他们需要在SO站点、StackExchange站点V1和V2、区域51……之间维护许多并行的、略有不同的代码库版本)
      请参见“ differences between DVCS and CVCS What are the benefits of Mercurial or git over svn for branching/merging? ".

    • 为了一个 企业环境 (我在哪里), ,因为它需要:

      • 提供资金 (钱,即使工具是免费的)
      • 支持 (这意味着拥有合适的人和合适的能力)
      • 综合 (使用现有的遗留工具、gui、ide,如visualstudio或其他许多工具,…)
      • (就通用服务器而言,即使对于DVCS也是如此)
      • 记录


    (参见“ Corporate adoption rate of Git? “或” Git-Based Source Control in the Enterprise: Suggested Tools and Practices? ".)
    它(甚至对于新的项目)并不像在一个较小的结构中或在开放源代码环境中那样容易实施。

        2
  •  22
  •   Thilo    14 年前

    对于一个开发人员来说是不是更好?

    如果有什么不同的话,Subversion对于一个开发人员来说更糟糕(安装起来更麻烦)。

    但继续使用SVN的一个很好的理由是惯性。如果SVN对您的项目(或在您的公司)运行良好,则无需经历切换的痛苦。教每个人新的工具(和新的工作流程)可能需要一些培训成本,但没有真正的好处。

        3
  •  12
  •   Mhmmd    14 年前

    我认为Subversion仍然比Mercurial和Git更适用于大文件,比如媒体资产、Photoshop文件、After Effects composites等。我记得Linus Torvalds提到大文件是Git在应用程序中为数不多的潜在问题之一 this Google Tech Talk . Mercurial有一些扩展,用于在存储库外存储大型文件。因此,在这种情况下,它们似乎都会遇到性能下降和/或其他问题。

    另一方面,颠覆正被当今社会所利用 Blender Open Movie Project . 我不认为他们用它来存储渲染帧,因为每个渲染过程至少需要几GB的数据。但是,对于所有的3d场景、对象、装备、纹理和脚本,这仍然是一个包含许多大型文件的大型存储库。

        4
  •  11
  •   JBirch    14 年前

    持续

    另外,我认为SVN还有一些地方,特别是在教学修订控制方面。但这是我在大学里学习SVN和自学git的亲身经历,所以我的观点并不客观。

    也就是说,如果您从 划痕 ,我想不出任何情况下,你可能会认为SVN是绝对必要的。也许是在处理遗留系统时。

    或旧用户;)

        5
  •  9
  •   msw    14 年前

    我什么都不知道 内在的 选择集中风险投资的原因,有很多外在因素,如遗留系统、管理惯性、学习曲线等。

    DVCS在很大程度上证明了自己是“更好的捕鼠器”。

        6
  •  8
  •   Adam Crume    14 年前

    真正的问题不是SVN与Git/Mercurial的对比,而是分布式与集中式的对比。在某些情况下,集中式可能更好,例如需要严格控制和彻底记录的公司环境。

        7
  •  7
  •   Rudi    14 年前

        8
  •  6
  •   carl    14 年前

    当集权范式是理想的时候,颠覆才是理想的。

        9
  •  3
  •   Docunext    14 年前

        10
  •  3
  •   sylvanaar    14 年前

    但是,不能将SVN用作Git或Hg的客户机。

        11
  •  2
  •   wuputah    14 年前

    我的回答基于以下几个假设:

    • 您在源代码管理中存储的主题是源代码,而您对代码所做的是 专业的 软件开发。
    • 你应该总是用最好的工具来做这项工作;正如乔尔测试所说, you should use the best tools that money can buy -即使他们是自由的。
    • 外部因素与选择最适合这份工作的工具无关——这些是你必须克服的障碍。同时,这些原因是 借口 继续使用颠覆,而不是 原因 为什么要明确使用它。

    其次,DVCS被认为是比Subversion更好、更强大的工具。过去关于堆栈溢出的讨论很多,其他的答案也表明,大多数人都同意DVCS是“更好的捕鼠器”。我觉得没有必要证明这一点;你可以仔细阅读这里已经发布的链接/类似问题。当然,并不是每一个dvc在各个方面都比Subversion好,但我相信像Mercurial、git等领先的dvc几乎在各个方面都比Subversion好。

    所以按照我的逻辑,如果你要为工作选择最好的工具,而Subversion是一个低劣的工具,Subversion 不再使用。这并不意味着我们将看到全球范围内的即时采用,但我的观点是——如果你相信使用最好的工具来完成这项工作——所有的组织 应该 计划转移到DVCS。当然,很多人不会,我预计人们将继续使用颠覆很长一段时间。