我们最终可以在企业软件中转向 DVCS 吗? SVN 仍然是开发的“必备”吗? [关闭]

2023-12-27

Git/Mercurial 已经变得越来越流行。我看过很多比较 SVN 与 Git/Mercurial 的文章,但我想知道是否真的有任何理由仍然使用 SVN。现在似乎有很多适用于 Git/Mercurial 的工具,这应该有助于扩大其企业采用率。

还有什么理由继续使用 SVN 吗? Mercurial/Git 最终准备好供企业采用了吗?


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

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

  • 有些要求不容易满足 http://gitguru.com/2009/03/18/git-enterprise-requirements/(在安全和访问控制、管理和访问限制方面)
  • The DVCS 范式更难以理解 https://stackoverflow.com/questions/2479274/using-mercurial-in-a-large-organization,有很多优点和缺点 https://stackoverflow.com/questions/343675/what-are-your-pros-and-cons-of-git-after-having-used-it.
  • 你确实需要利用其众多工作流程 https://stackoverflow.com/questions/2383826/git-based-source-control-in-the-enterprise-suggested-tools-and-practices而不是依赖SVN集中式。
  • The 从 CVCS 到 DVCS 的过渡很困难 http://beust.com/weblog/2010/04/06/git-for-the-nervous-developer/

只是为了清楚起见,使用DVCS 可能是一个非常有效的选择:

  • for a 新项目, where 开发人员不受旧工具或流程的束缚
  • 特别是当开发商不在同一地点时(通常是开源开发的情况,这就是 DVCS 主要在其中使用的原因)。

StackOverflow(不是开源项目)正在使用 Mercurial(请参阅HgInit,作者:Joel Spolsky http://hginit.com/).
他们从 SVN 迁移到 DVCS:

  • 部分原因是他们的开发人员现在遍布世界各地(!)
  • 还因为 DVCS 的合并功能比 SVN 先进得多。
    (他们需要在 SO 站点、StackExchange 站点 V1 和 V2、Area 51 之间维护许多并行且略有不同的代码库版本,...)
    See "DVCS 和 CVCS 之间的区别 https://stackoverflow.com/questions/2704996/describe-your-workflow-of-using-version-control-vcs-or-dvcs", or "与 svn 相比,Mercurial 或 git 在分支/合并方面有哪些优势? https://stackoverflow.com/questions/2518779/what-are-the-benefits-of-mercurial-or-git-over-svn-for-branching-merging".

  • For a 企业环境(我在哪里),任何类型的任何转变都不是微不足道的,因为它需要是:

    • funded(钱,即使工具是免费的)
    • 支持的(这意味着拥有具有适当能力的适当人员)
    • 融合的(使用现有的遗留工具、GUI、IDE(例如 Visual Studio 或许多其他工具)...)
    • 管理的(就通用服务器而言,即使是 DVCS)
    • 有记录的(特别是对于有CVCS(如SVN)背景的用户)

因此 DVCS 在企业环境中也非常有用:
(See "Git 的企业采用率? https://stackoverflow.com/questions/1578416/corporate-adoption-rate-of-git" or "企业中基于 Git 的源代码控制:建议的工具和实践? https://stackoverflow.com/questions/2383826/git-based-source-control-in-the-enterprise-suggested-tools-and-practices".)
它(即使对于新项目)也不像在较小的结构或开源环境中那么容易安装到位。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们最终可以在企业软件中转向 DVCS 吗? SVN 仍然是开发的“必备”吗? [关闭] 的相关文章

随机推荐

  • 生成椭圆曲线密码学的椭圆曲线基点 ( G )

    如何在 Java 中生成椭圆曲线的基点或生成器 我正在开发一个 Java 包 可用于实现一些椭圆曲线加密算法 并且我想使用我自己的曲线 然而 我陷入了必须获得曲线的生成器基点的境地 以便我可以获得一组域参数 任何帮助深表感谢 给定 近素数
  • IRB 有哪些替代方案?

    在 python 世界中 有许多替代的 python 解释器添加了很酷的附加功能 bpython 是一个特别有用的示例 它添加了动态语法突出显示 自动提取文档并显示实时自动完成信息 在 Ruby 世界中 我还没有发现任何添加到基本 IRB
  • Github - 合并被阻止 - 基础分支要求所有提交都经过签名

    即使所有提交都已验证 Github 仍会阻止合并拉取请求 规则设置 选中 需要签名提交 和 包括管理员 有谁知道如何解决这个问题 这似乎只是 GitHub Web 界面的一个小故障 系统可以在内部验证签名 解决这个问题的技巧是使用 命令行指
  • 反转字典中键值对的顺序(Python)[重复]

    这个问题在这里已经有答案了 在Python中如何反转字典的键值对的顺序 例如 我有这本字典 a 1 b 2 c 3 我想反转它 以便它返回 c 3 b 2 a 1 有没有我没听说过的功能可以做到这一点 有些代码行也很好 字典没有任何顺序感
  • 为什么写入变量会改变其范围?

    采取以下代码示例 var True def func1 if var print True else print False var True func1 这打印True正如人们所期望的那样 但是 如果我取消注释 var True 我收到错
  • 启动 Oracle SQL*Plus 时 TNS 协议适配器错误

    每当我尝试登录 SQLPlus 11g 标准版 Windows 64 时 我都会收到与某些连接错误相关的错误 我尝试以 sys 作为 sysdba 登录并提供密码 所有服务都启动了 我使用的是 Windows 7 任何帮助 将不胜感激 Tr
  • C++前向声明问题

    我有一个包含一些前向声明的头文件 但是当我在实现文件中包含头文件时 它会在之前的前向声明的包含之后被包含 这会导致这样的错误 error using typedef name std ifstream after class usr inc
  • 在哪里可以获得 pldbgapi.sql 以便安装 postgresql 调试器?

    我正在尝试在 Linux 上安装 postgresql 调试器 以便我可以使用 pgAdmin 来调试我的函数 我已经设置了我的postgresql conf文件 然而 我找不到pldbgapi sql Postgresql 安装在 usr
  • sklearn:TFIDF Transformer:如何获取文档中给定单词的 tf-idf 值

    I used sklearn用于计算文档的 TFIDF 词频逆文档频率 值 使用命令如下 from sklearn feature extraction text import CountVectorizer count vect Coun
  • 如何获取数组的大小? [复制]

    这个问题在这里已经有答案了 在 C 中 我使用嵌入到我想要获取其大小的数组中的 Length 属性 在 C 中如何做到这一点 这实际上取决于 数组 的含义 C 中的数组的大小 现在指的是 原始 字节大小 等于一项大小的 N 倍 通过这一点
  • Silverlight 4 HttpWebRequest 抛出 ProtocolViolationException

    我通过 http 调用 REST 服务 该服务返回一个流作为响应 我的客户端代码如下所示 Uri uri new Uri remoteAddress var webRequest HttpWebRequest WebRequest Crea
  • 如何使用mask计算直方图OPENCV?

    我只需要计算图像的一部分的直方图 但这部分具有圆形形状 如圆盘 我创建蒙版来找到图像上的该部分 cv2 rectangle mask 0 0 width height 0 0 0 1 cv2 circle mask int avgkrug
  • 如何从错误:监听 EADDRINUSE 中释放 localhost

    我正在Windows 7上测试用nodejs编写的服务器 当我尝试在命令行中运行测试器时 出现以下错误 Error listen EADDRINUSE at errnoException net js 614 11 at Array 0 n
  • 反序列化 JSON 并访问元素

    我有以下代码 dynamic stuff JsonConvert DeserializeObject Name Jon Smith Address A B C Age 42 var name stuff Name MessageBox Sh
  • “ResourceCycle”类型问题的说明:生成签名的 Apk 时

    更新到 appcompat v7 24 0 0 alpha1 后生成签名的 apk 时出现错误 Error Error Style Resource definition cycle TextAppearance AppCompat Lig
  • 卷积神经网络 - 如何获取特征图?

    I read a few books and articles about Convolutional neural network it seems I understand the concept but I don t know ho
  • href 内有小胡子

    我有这样的 JSON something http something com 和 HTML 像这样 a href something something a 当我应用 Mustache 时 我得到 a href 7B 7Bsomethin
  • 如何从批处理文件中仅删除空目录

    有没有办法从批处理文件中删除给定目录下的所有空子目录 或者是否可以递归复制目录 但排除任何空目录 你确实有两个问题 1 有没有办法从批处理文件中删除给定目录下的所有空子目录 是的 这个一行 DOS 批处理文件对我有用 您可以传入模式 roo
  • 多线 lambda 比较器

    我从 Java 中的 lambda 表达式开始 有一些我认为很奇怪的东西 我确信我做错了什么或者它有解决方法 要定义比较器 我可以这样做 col setComparator CustomCell o1 CustomCell o2 gt Co
  • 我们最终可以在企业软件中转向 DVCS 吗? SVN 仍然是开发的“必备”吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi