Svn 有没有合理的方法从subversion迁移到cvs?

Svn 有没有合理的方法从subversion迁移到cvs?,svn,migration,cvs,Svn,Migration,Cvs,我的公司无意中从cvs切换到subversion,现在我们都希望我们有了cvs。 我知道有一些工具可以将历史记录和更改从cvs迁移到svn,但没有相应的工具可以做相反的事情。 有什么建议或想法吗?不是升级。不要这样做 说真的,为什么你更喜欢CVS而不是SVN?CVS实际上是一个玩具,假装允许团队在没有明确沟通的情况下工作。真是太可怕了 如果出于任何原因您需要SVN以外的东西,请查看其他版本控制系统。有很多,它们几乎都比CVS好(事实上,只有视觉源安全性差)。当你只有锤子时,一切看起来都像钉子 最

我的公司无意中从cvs切换到subversion,现在我们都希望我们有了cvs。 我知道有一些工具可以将历史记录和更改从cvs迁移到svn,但没有相应的工具可以做相反的事情。
有什么建议或想法吗?

不是升级。不要这样做

说真的,为什么你更喜欢CVS而不是SVN?CVS实际上是一个玩具,假装允许团队在没有明确沟通的情况下工作。真是太可怕了


如果出于任何原因您需要SVN以外的东西,请查看其他版本控制系统。有很多,它们几乎都比CVS好(事实上,只有视觉源安全性差)。

当你只有锤子时,一切看起来都像钉子

最好的办法是学习svn,它会让你更有知识。

svn不是很好。 SVN优于CVS。
如果您想更改checkout Mercurial、GIT、Bazaar。

我认为这些工具的存在并不是为了向另一个方向发展,因为对它的需求不多

如果您真的必须这样做,那么编写一个脚本来遍历SVN repo的历史,获取每个修订并将其提交给CVS应该不难


顺便说一句,我真的很想知道你对SVN有什么问题。

你的选择可能是有限的。请记住,CVS的主动开发在不久前就停止了,因此CVS开发人员可能没有为您提供任何工具。由于svn的主要目标之一是成为一个更好的CVS,这些开发人员可能也不会期望任何人倒退


但是如果你不喜欢subversion,为什么不看看更现代的分布式系统(git、mercurial等)

那么,您的公司如此不喜欢SVN的哪些方面,而CVS做得更好呢?SVN的设计者不遗余力地使SVN体验与CVS非常相似。如果您使用Ortoise客户端作为前端,则体验非常相似。SVN为您提供了原子提交,它虽然没有完全达到Perforce的标准,但比CVS早了几英里

我不得不同情你的困境。我将我们的开发团队和IT团队从CVS升级到SVN。我得到了所有正确的python脚本来升级所有版本历史记录,我们愉快地使用SVN已经将近4年了。大约三个月前,IT团队负责人决定从SVN“升级”他的所有项目,猜猜看是什么?没错,版本控制系统的重量级人物:SourceSafe


我肯定会坚持使用SVN,甚至会研究一些较新的分布式系统,如Mercurial。这些系统没有中央服务器。它们依赖于能够跨几十个或数百个对等点进行分支和合并。您可以定义自己的拓扑结构,例如,您可以指定一个特定的对等方作为执行日常构建的对等方。

同意下士Touchy

SVN比CVS更好,因为它的设计初衷是——基本上是一样的,有一些简化和新特性

使用Svn,您可以移动/重命名文件,而不会丢失其历史记录;您可以获得更安全的提交(提交是原子操作)和全局修订

无论如何,在返回CVS之前,试着更好地了解它,甚至更好地,试着真正理解您作为一个团队对存储库的需求


PS:我想下士说的是

我最初是在别人的回答中加上这个作为评论,但后来意识到这是一个回答,某种程度上。我以前做过这种转换,在这种转换中,没有从一个SCM系统转换到另一个SCM系统的现有方法

编写一个脚本,从SVN存储库中获取提交列表,然后一次迭代一个,并将它们合并到新创建的CVS存储库中,这并不是什么了不起的事。让所有分支和标记完全正确可能需要更多的工作,但是如果您只想保存几个分支的修订历史记录,那么应该很容易


我还认为,通过切换回CVS,您不会真正获得任何好处,但如果您想这样做,那么您可能会编写自己的脚本。“svn export”命令在这方面无疑是有用的。

我认为来自CVS的subversion用户只有两个缺点

  • 通过http签出的速度
  • 缺少模块别名
第一个问题可以通过使用svn(+ssh)来解决,svn(+ssh)是更具可比性的格式,因为CVS也使用自己的协议。 第二个有点棘手,但svn:externals可以模仿它(它有自己讨厌的副作用)
如果您遇到了任何其他缺点,我很清楚。

svn本应比cvs更好,但在某些方面效果不佳。其他分布式工具的开发速度要快得多(svn非常慢,甚至cvs有时也会更快),它们的功能比svn有用得多,而且开发速度很快(而在svn中看到任何新功能都需要几年时间)。另一方面,svn非常容易学习和集中(这对某些人来说很重要)

svn团队专注于自己的议程,很难得到开发人员的支持(与其他开源项目相比),一些bug报告存在很长时间,开发人员对此没有任何兴趣


我对svn项目的外观和开发方式感到失望,但很好,未来可能会有所改变。

请注意一点:Bazzar、Mercurial等(这里有人建议他们)都是分布式版本控制系统。我发现使用这些工具几乎不可能管理一大群在同一源代码上工作的程序员。在我的公司里,我们使用SVN,它做得很好。

当在所有其他答案中提请您注意git时,git的一个方面还没有被讨论过:git提供了cvs服务器模拟,因此您可以迁移到git(SVN到git是
git svn clone http://thesvnserver ourrepo
git cvsexportcommit 4a20cbafdf25a141b31a8333284a332d1a4d6072