在正常的svn客户端上使用git-svn有什么好处?

时间:2011-04-20 16:28:22

标签: svn git git-svn

我最近看过很多帖子,如果你必须用SVN存储库进行团队开发,git是一个比svn更好的客户端:

这些文章似乎专注于如何,并吝啬为什么。 帮助我说服自己,老板和同事,使用git-svn优于官方的svn客户端是有好处的!

注意:git和svn的相对优点得到了很好的解决。我更关心这个问题,哪个客户端在规定的SVN存储库上使用。

2 个答案:

答案 0 :(得分:5)

对我来说,使用git-svn(和CVS桥)的主要优点是

  • 我在本地浏览了所有历史记录git-blame
  • 离线时我有完整的版本控制,例如在火车上,
  • 我可以充分利用暂存区/索引到例如只有阶段特定的行,
  • 当我对他们感到满意时,我只需要发布变化(即我尝试了一些事情并且它已经成功或者我使历史变得一致),
  • 我可以很容易地通过补丁系列进行审核。

作为奖励,git与SVN和CVS的接口允许我选择退出参数,如果我们应该将我们的CVS存储库转换为颠覆(持续3年以上)或者寻找一些非常酷且立即感到喜欢的东西(从2开始) +年)。

您真的不需要管理员决定开发人员应该使用什么。无论如何,用于中央存储库的内容可能由其他参数驱动(例如,构建,审查和测试基础结构)。

答案 1 :(得分:4)

对我而言,这完全取决于当地的分支机构。当我开始使用BigNewFeature的时候,我可以使用git创建一个新的分支(本地)并开始处理它,按照我喜欢的方式提交每一步。然后当有人不可避免地打断我从事BigNewFeature工作并希望我修复SmallTypo时,我可以切换到主分支,修复拼写错误,然后将其推送到svn。我可以回到我的BigNewFeature分支继续我的业务。

这些廉价的本地分支机构为您提供了很多灵活性,作为开发人员,当您必须处理svn分支和合并时,您将无法获得这些灵活性。我不怕快速分支和实验。然后,当我对结果感到满意时,我可以将我喜欢的任何内容合并回主服务器,并通过一组干净,易于识别的提交将其推送到SVN。