与git相比,颠覆的优势是什么?

hug*_*eow 3 svn git version-control

众所周知,git在这些日子里非常受欢迎,因为它具有高效率,因为它具有本地计算机上的所有历史记录,并且可以在没有网络的情况下完成历史检索.也许对于外联网用户来说,网络问题并不重要,但是git也有其他类型的优势,比如轻量级分支(我仍然不确定它和svn的分支之间有什么区别,为什么git的分支很轻)?

我也知道很多人还在使用颠覆,为什么?如果git很好,他们可能会切换到git :)

所以,这里有人可以告诉我颠覆的一些优点吗?

还有一个问题:

is there anything which can be done by svn, but cannot be done with git?
Run Code Online (Sandbox Code Playgroud)

bah*_*rep 12

我建议你阅读文章 "我讨厌Git的10件事"和StackOverflow线程SVN vs Git.我也建议阅读这篇关于Subversion和Git的文档.

虽然其他人已经提到简单性(简单性是Apache Subversion的商标;) BTW)和明确的工作流程作为主要的Subversion优势我想添加一些其他重要的Apache Subversion 专业人员:

  • 更好的IDE集成和GUI. 您可以在大多数IDE中看到内置的SVN客户端(或作为插件实现).其中一些提供了与IDE非常舒适和直观的版本控制集成.另一方面,除了众所周知的GitHub之外,Git没有良好的图形界面.IDE集成仍在进行中,但Git的hacky命令行性质并没有真正转化为GUI.您仍然必须使用命令行来处理比分支或拉/推更复杂的事情.

    BTW,TortoiseSVN Subversion客户端可以被认为是适用于Windows的最佳版本控制客户端.

  • 颠覆是集中的.换句话说,分布式系统不是所谓的"下一代VCS"(你好,Eric Sink等人),它们只是分布式的.分布式只是另一种非常适合开源项目的方法,例如Linux Kernel(Git是为Linux内核开发的,还记得吗?)但它有其自身的缺点.

  • 完整修订历史.SVN维护目录,重命名文件元数据的版本控制.Subversion就像一个具有不可变历史的时间机器.您可以随时使用机器返回,以检查您的日期在2009年1月3日的样子.

  • 部分结帐.使用Subversion,您无需获得完整的存储库克隆.您可以签出项目的特定分支或主干.更重要的是,您可以获取存储库的任何子树.极大地减少了开始处理任务所需的流量.如果您已有工作副本,则切换到另一个分支或搁置是即时的(如果您有远程仓库的连接,显然).

  • 锁定支持.Subversion支持lock-modify-unlock版本控制模型.Git没有.如果您有不可合并的文件,这可能非常有用.你好gamedev!:)

  • 内置授权身份验证机制.

  • 就个人而言,我在git中使用巨大的二进制文件遇到了很多麻烦."git-submodule"或"git-annex"方法难以设置,基本上不适合`git工作流.所以,如果你'重新处理大量资产和其他重要内容,"颠覆"行为非常好. (4认同)
  • @hugemeow基本上,像'git-annex`这样的东西的存在可以被认为是一个有力的证据.使用`subversion`,你不必担心你提交的文件的大小,因为用户只会在`checkout`期间检索它们的实际修订版.使用`git`,当执行`git clone`时,每个人都将获得这些二进制文件的完整历史记录.而且,没有理由提出诸如[如何从Git中的提交历史中清除大文件?]这样的问题.(http://stackoverflow.com/questions/2100907/how-to-purge-a-huge-file -from-commit-history-in-git)关于`subversion`. (2认同)

Vin*_* B. 6

简单.

诸如"什么是遥控器?","为什么要修改消息?","这个改变什么东西?"之类的问题.有必要了解Git提供的所有功能,你需要了解它们才能真正了解为什么Git如此棒.

但对于一个设计师或任何从Git开始的技术人员来说,这真的很令人头痛.颠覆是众所周知的,其集中的方式使所有这些人更容易理解.

使用Subversion可以更快地开始工作和生成东西(假设你已经设置了环境;)).


Phi*_*ley 5

Git是关于拥有个人权力,而Svn是关于企业权力(作为一个宏大的主张).

Git知道不再需要保护Master文档免受伤害.相反,现在有许多副本,除非经过sha1验证,否则更难以管理.

Svn知道人们是愚蠢的(但不是你和我;-)并且认为知道谁重命名并移动了重要内容,并且内容可以在以后签署.

Git让你用剪刀,玩杂耍链锯和制作你的产品.Svn提供防护服,工作指示和一种安全措施.

这是关于选择你想要钉在地板上的那只脚;-)