我最近开始在工作中将一些项目导入Subversion存储库,在接下来的几周内,我期望团队中的每个人都对自己的源代码管理负责。
我之所以选择SVN而不是GIT,是因为我希望团队中的所有人,包括设计师,前端人员,集成商......负责他们自己的SCM,所以我期待事情的发展如果他们使用GUI(Mac的Cornerstone和Windows的Tortoise SVN)管理他们的工作,他们会更快地移动。我知道有一些GIT GUI,SmartGit在一分钟看起来最吸引人,但似乎没有像他们的SVN同行那样有能力。此外,我觉得通过不使用命令行来处理DVCS,我们会在翻译中失去一些东西(而我使用GUI来管理SVN中的项目非常高兴。)
问题在于分布式解决方案正在快速超越集中式解决方案,因此我想知道现在是否真的值得花费额外的投资,而不是必须在6个月后将所有内容迁移到DVCS中并投入时间?另一种看待它的方式是SVN在此期间将是一个相对无痛的步骤,如果我们以后决定迁移到DVCS,它将为我们做更充分的准备。
感谢您的想法和经历。
*旁白:由于多种原因,我更喜欢每个SVN存储库的多个项目。然而,这意味着Atlassian的Fisheye的统计数据不那么有意义,而且更加混乱。如果我们决定使用GIT,那么每个项目将有1个存储库。
答案 0 :(得分:9)
关于DVCS,要记住的一点是,它实际上并不是关于它的分布式问题,而是关于分支和合并。 DVCS使分支和合并变得更加容易,以至于每个开发人员/设计人员/前端人员基本上都有自己的私有分支 - 他们的本地仓库。这样,他们可以并行工作,而不会踩到对方的脚趾。这意味着他们可以每隔几个小时检查一次代码而不是等待几天,直到他们完成所有操作来检查它。
我建议你看看Mercurial。它在TortoiseHg中有一个很好的GUI,我发现它比Git更容易上手,因为它在开头没有提供所有高级内容,但它仍然拥有所有的一旦他们在系统中感到舒适,就会有强大的功能。
答案 1 :(得分:4)
我不相信分布式解决方案正在快速超越集中式解决方案,因为很多开发都没有分发。 Git是围绕开源项目的人们遇到的问题而设计的,但大多数问题并不是个别企业管理代码的问题。
就像你一样,用于颠覆的完善的工具库是我们选择它的一个关键原因。它可以轻松地与人们使用的所有开发工具以及我们的票务系统集成。
答案 2 :(得分:2)
尝试向TortiseGit介绍一些用户。根据他们对此的反应,您可以决定是否适用于团队。如果他们挣扎了一个多星期左右,请试试SVN。
如果他们在SVN中感觉更舒服,那么我会更喜欢。高级开发人员仍然可以使用git-svn来使用git的大多数高级功能。
答案 3 :(得分:2)
当然,分布式很好,但是如果svn具有git所具有的相同的非分布式功能,那么只有开源大型项目的人才开始使用git。合并和分支是非常好的,而且:如果你搞砸了一些东西,使用git时通常很容易解决问题。或者,如果您的源代码充满了变化,并且您很快就需要解决“主代码”问题,那么git会节省很多痛苦。当我们开始在我工作的公司使用svn时,我们遇到了一些问题。主要是因为它缺乏很大的灵活性。
但最后我想你应该根据你是否找到一个好的GUI来做出决定。