从SVN转移到......?

时间:2009-05-01 23:11:00

标签: svn git version-control mercurial dvcs

我目前正在一个我们正在“使用”subversion存储库的团队中工作。我说“使用”,因为实际上,每个人都只是通过samba共享直接在服务器上编辑文件,而我们的架构师每隔一段时间就通过我们的更改从该服务器进行提交,然后将其推送到服务器。

所以基本上我们错过了能够从不同用户那里获得有意义的提交消息,并且能够像我们喜欢的那样经常提交。

我一直试图引起人们对分布式系统的兴趣,以及我们所拥有的工作流程如何能够与git(我们在本地机器上提交然后将更改集推送给他评论)但我不觉得我有足够的经验与git。我的大多数DVCS经历都是多变的。

每个人都在使用tortoisesvn在Windows环境中工作,这就是他们习惯与系统交互的方式,但他们偶尔会使用PuTTY在其中一个Linux服务器上工作,并且知道如何使用命令行提交。

通过什么方式,我已经看到了在SVN和某些DVCS之间建立网关的一些工作,有没有人有在这样的环境中设置和工作的经验?

如何从SVN全面迁移到DVCS?

9 个答案:

答案 0 :(得分:20)

如果您的团队无法理解如何使用subversion,我不知道您将如何让他们了解git。特别是因为他们处于“让所有工作在同一个工作副本中”的思维模式,他们将很难掌握分布式版本控制系统。

根据我的经验,要使用svn-git,你必须知道如何使用git,你必须知道如何使用svn。我建议教他们正确使用svn。

答案 1 :(得分:11)

您是否有理由不想保留SVN存储库,并以SVN的使用方式使用它?

为什么不让每个人签入和合并,使用分支机构等?如果您有存储库设置,为什么要切换?

答案 2 :(得分:6)

您所描述的问题似乎主要与提交代码的正确程序和协议有关。获得不同的产品不会改变人们的工作方式。你需要先教育他们。向他们展示如何更好地做事。

另一方面,我没有得到你如何使用tortoiceCVS与SVN接口。

答案 3 :(得分:4)

对我而言,听起来版本控制系统的选择不是问题。你需要做的是说服建筑师他需要提出一些合理的政策来使用修订控制系统。

您当前的svn系统是完全足够的;如果您需要保持干线干净,让用户创建分支。架构师可以根据需要合并它们。

现在,您可以移动DVCS,并且有充分的理由这样做。但是如果团队不习惯使用客户端/服务器rcs,那么这可能具有挑战性。并且你可以在本地使用git或hg,但这些是基本上破坏rcs使用的解决方法。让每个人首先使用svn将是我的建议。

在samba共享上编辑文件?认真?

答案 4 :(得分:3)

git-svn 绝对是你最好的选择。您将能够使用git的所有本地版本控制和更改审核功能,但最终可以将“最终”签入推送到您现有的svn存储库。

这具有令人敬畏的副作用,能够让你的团队一次一点点地使用git(因为你可以在购买之前尝试,因为你仍然可以使用您使用SVN开发的任何现有部署/维护流程。

还有一个很好的crash-course on git syntax for svn users,可以用来让你的团队加快速度。

答案 5 :(得分:3)

你的问题不是SVN本身,而​​是没有正确使用它。

答案 6 :(得分:2)

hg也很擅长使用subversion - 请参阅https://www.mercurial-scm.org/wiki/WorkingWithSubversion。 Python核心开发团队刚刚决定从Subversion切换到Mercurial(经过长时间的讨论和考虑git和bazaar的时期);在一个不相关的开发中,code.google.com的开源项目免费托管服务为他们对svn的长期支持增加了支持。

答案 7 :(得分:2)

Steve Yegge可能会说: TOOOOOLS

正如其他人所说,如果你不能让他们使用svn,他们将不会使用分布式vcs。

他们使用IDE吗?如果是这样,请找到IDE的插件,以便于使用svn。因此,他们可以右键单击IDE中的文件或文件夹并签入。如果您更容易在本地副本上使用源代码控制而不是直接访问中心文件,那么您可能会有机会。然后你可以使用TortoiseSVN来完成更复杂的任务。

一些指向流行IDE的SVN插件的链接可以帮助您入门:

来自颠覆网站的here is a list of IDE plugins

答案 8 :(得分:0)

git和bazaar都对svn有很好的支持。事实上git-svn在过去的几个月里已经成熟了很多。

尝试git,因为DVCS非常好,并且听起来很难听起来像。