git vs Subversion – 优点和缺点

我一直是SVN的用户多年,我不能说我完全高兴。 几天前,我的合伙人让我看看git说:“它有更好的性能,更容易合并和分支”。

我一直在阅读一些关于SVN和SVN的比较文章,如果人们能够使用版本控制系统来总结优点和缺点,我会很高兴。

现在我正在研究从一个系统切换到另一个系统并听取主观意见的人。

我知道我真的很喜欢SVN的工作方式,有一个中央存储库,人们可以从中检出,知道我可以从中部署一个实时的开发副本和现场生产副本,但有时我们有头痛分类冲突或其他错误和每次我们需要比较或查看文件的历史时,我们都有networking延迟来处理。

另一方面,拥有一个分布式平台听起来也很头疼,你怎么控制访问呢? 你有一个中央资源库,你推动和更新?

感谢您在这个问题上更多的了解。

您是否试图比较系统pipe理员感知或程序员的两个工具? 如果你从程序员的angular度来看这个,也许你应该在stackoverflow上提出这个问题。 或者甚至更好,也许你应该看看已经被问及的“ git svn ”。

关于git和svn的事情是,它不是一个或者一个命题。 你可以运行一个SVN仓库,如果他们认为在特定情况下git是一个更好的工具,你的开发人员可以使用git-svn与之交互。

真的,没有任何优点可以颠覆git。 在分发git的同时,每个人都可以使用远程跟踪分支来工作。 git更快,更灵活,并且实际上合并工作。 另外,你可以真实地脱机工作,而在颠覆的时候,你不能提交更改,如果你没有更好的工作你可以更轻松地单独提交git与单个提交ID代表svn仓库的状态。

访问是由git服务器上的用户/组帐户控制的(你必须用'git init –bare –shared'来初始化原始仓库,以便适当地设置权限)或使用ssh键。 非常细微的访问控制可以通过使用第三方插件“gitosis”来设置。

当你习惯了svn(我们刚刚在我的办公室里经历过这个)时,习惯使用git需要一点时间,但是git的function更强大。

如果你需要一个很好的演练,看看http://progit.org – 这是一个完整的在线开放源码的在线书籍。

在我的团队中,我们正在将控制版本系统从svn改为git。 Git的学习曲线稍微有些困难,所以我开始熟悉它,然后教会开发者如何使用它。 他们需要知道分布式控制版本系统的所有优点:多个分支,没有中央存储库,速度等。

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

我们试图不混合svn和git仓库,开始迁移我们的次要站点,并为主站点创build新的git仓库,就像他们是一个新的版本。 使用ssh密钥pipe理访问。 我们也使用gitweb作为web界面(我们的svn系统是基于http的)

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