我的公司不知不觉地交换从简历来颠复和现在我们都希望我们有cvs回。我知道有的工具迁移的历史和变化,从简历来svn且也没有等效的做相反。任何建议或想法上如何做到这一点?

有帮助吗?

解决方案

我最初将此作为对其他人答案的评论添加,但后来意识到这是一个答案,各种各样。我之前已经完成了这些转换,没有现成的方法可以从一个SCM系统转换到另一个系统。

编写一个脚本来获取SVN存储库中的提交列表,并逐个迭代它们,将它们合并到一个新创建的CVS存储库中,这不是火箭科学。让所有分支和标签完全正确可能需要更多工作,但如果您只想保存几个分支的修订历史记录,那应该非常简单。

我也认为你不会通过切换回CVS获得任何东西,但如果你想这样做,那么你可能会编写自己的脚本。 “svn export”毫无疑问,命令在这项努力中是有用的。

其他提示

那么SVN对贵公司不喜欢什么,CVS做得更好? SVN的设计人员竭尽全力使SVN体验与CVS非常相似。如果您使用Tortoise客户端作为前端,体验非常相似。 SVN为您提供原子提交,虽然不太符合Perforce的标准,但却在CVS前面达到了数英里。

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

我肯定会坚持使用SVN,甚至可以查看一些较新的分布式系统,例如Mercurial。使用这些系统,没有中央服务器。他们依靠能够分支和合并了数十个或数百个同行。您可以定义自己的拓扑,例如,您可以将特定对等体指定为执行每日构建的对等体。

我不认为这些工具是朝着另一个方向发展的,因为它的需求并不多。

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

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

SVN并不好。 SVN优于CVS。 如果你想更改结账Mercurial,GIT,Bazaar。

git的一个方面在所有其他答案中都引起了你的注意:git提供了一个cvs服务器模拟,这样你就可以迁移到git(svn到git很容易并得到很好的支持)和稍后使用cvs服务器接口以集中方式访问存储库。没有人知道你在后台使用git而且你不必处理分布式备份问题。

不是升级版。不要这样做。

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

如果出于某种原因需要SVN之外的其他内容,请查看其他版本控制系统。有很多,它们几乎都比CVS好(事实上,只有Visual Source Safe很差)。

您的选择可能存在实际限制。请记住,CVS的主动开发已经停止了一段时间,因此CVS开发人员可能没有适合您的工具。而且由于svn的主要目标之一是成为更好的CVS,这些开发人员可能也不会期望任何人向后退。

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

当你拥有的只是锤子时,一切看起来像钉子。

最好的办法是学习svn,这样可以提高知识水平。

同意下士公司。

SVN优于CVS,因为它被设计为 - 它大致相同,有一些简单和新功能。

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

无论如何,在回到CVS之前尝试更好地了解它,甚至更好,尝试真正了解你作为一个存储库团队的需求。

PS:我认为下士正在讨论 Mercurial

svn应该比cvs好,但在某些方面效果不佳。其他分布式工具要快得多(svn很慢,甚至cvs有时会更快),比svn更有用的功能,正在快速发展(同时看到svn中的任何新功能需要YEARS)。另一方面,svn非常容易学习和集中(这对某些人来说很重要)。

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

我对svn项目的外观及其发展方式感到失望,但未来可能会发生变化。

只有2个缺点的颠复我能想到的用户来自简历

  • 速度结账过http(s)
  • 缺乏modulaliases

第一一个可以解决的,svn(+ssh),这是更可比较的格式作为CVS使用其自己的协议。第二个是一点点棘手,但是可以仿效的svn:外部(它们有自己的讨厌的副作用) 如果你遇到的任何其他额外的缺点,我的耳朵..

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

不知道你为什么要这样做,但是从SVN出发 - > GIT - > CVS可能有效

你要跑..

git svn clone http://thesvnserver ourrepo

然后使用以下指南导出回CVS(不完全确定这将起作用):

http://issaris.blogspot.com /2005/11/cvs-to-git-and-back.html

git cvsexportcommit 4a20cbafdf25a141b31a8333284a332d1a4d6072

还有 git cvsserver

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top