git 与 Subversion - 优点和缺点

git 与 Subversion - 优点和缺点

我已经使用 SVN 很多年了,但我对它并不十分满意。几天前,我的合作伙伴让我看看 git,说“它的性能更好,合并和分支更容易。”

我一直在阅读一些 git 与 SVN 的比较文章,如果有人能够总结出使用这两个版本控制系统的优缺点我会很高兴。

现在,我正在调查那些从一个系统转换到另一个系统的人,并听取他们的主观意见。

我自己知道我真的很喜欢 SVN 的工作方式,有一个人们可以从中签出的中央存储库,知道我可以从中部署实时开发副本和实时生产副本,但有时我们会头疼于解决冲突或其他错误,每次我们需要比较或查看文件的历史记录时,我们都需要处理网络延迟。

另一方面,拥有一个分布式平台听起来也是一件令人头疼的事情,你如何控制访问?你是否有一个用于推送和更新的中央存储库?

感谢您对这个问题的进一步阐释。

答案1

您是想从系统管理员的角度还是从程序员的角度比较这两种工具?​​如果您是从程序员的角度看待这个问题,也许您应该在 stackoverflow 上提问。或者更好的是,也许您应该看看已经有人问过的问题“git svn“。

关于 git 和 svn 的事情是,它们不是一个非此即彼的命题。你可以运行 SVN 存储库,而你的开发人员可以使用git-svn如果他们认为 git 在特定情况下是一个更好的工具,则可以与其进行交互。

答案2

实际上,Subversion 相对于 git 并没有什么优势。虽然 git 是分布式的,但每个人都可以使用远程跟踪分支在中央存储库上工作。git 速度更快、更灵活,而且合并功能确实有效。此外,您可以离线工作,而使用 Subversion,如果您没有,则无法提交更改。您可以更轻松地在 git 中使用单个提交,而不是在 svn 中使用单个提交 ID 来表示存储库的状态。

访问由 git 服务器上的用户/组帐户控制(您必须使用“git init --bare --shared”初始化原始存储库,以便正确设置权限)或使用 ssh 密钥进行控制。可以使用第三方插件“gitosis”设置非常精细的访问控制。

当您习惯使用 svn 时,需要花一点时间来适应使用 git(我们刚刚在办公室经历过这个),但 git 的功能更加强大。

如果你需要一份出色的指南,请查看http://progit.org- 这是一本开源书籍的完整在线副本。

答案3

在我的团队中,我们正在将控制版本系统从 svn 更改为 git。Git 的学习难度略大,因此我开始熟悉它,然后教开发人员如何使用它。他们需要了解分布式控制版本系统的所有优势:多个分支、没有中央存储库、速度等。

和您一样,我们有一个系统来部署我们的网站,所以我们保留了一个类似 git 中央服务器的东西,更改从开发人员的机器拉出并推送到开发人员的机器。我们的网站从这个“中央服务器”拉出更改,其余的部署过程与使用 svn 的过程类似。

我们尝试不混合使用 svn 和 git 存储库,开始迁移我们的次要站点并为主要站点创建新的 git 存储库,就像它们是新版本一样。访问由 ssh 密钥管理。我们还使用 gitweb 作为 Web 界面(我们的 svn 系统基于 http)

它正在发挥作用,它不是一天发生的变化,我们正在尝试让开发人员不要把这种变化视为烦恼,而是一种学习工具的新技能,最终将改善我们自己的系统。

相关内容