Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于将CVS升级到git/hg的提示?_Git_Version Control_Cvs_Mercurial - Fatal编程技术网

关于将CVS升级到git/hg的提示?

关于将CVS升级到git/hg的提示?,git,version-control,cvs,mercurial,Git,Version Control,Cvs,Mercurial,我们仍然使用CVS,我个人使用git和hg,虽然我对这两种技术都还不太熟悉,但我意识到它们更现代、更好、更快、更分布式,等等 只是每个人都非常习惯CVS,我觉得如果我是推荐并实际将我们当前的CVS服务器升级/移植/转换到git或hg的人,可能会出现一系列问题 最近真的有人这样做过吗?您能否提供一些关于影响人们使用git/hg的见解或提示,以及关于实际更新/转换(如果发生)的一般提示?是否有一些常见的问题需要我大致了解?不确定您是在寻找关于迁移的一般指南还是两种服务的全面比较,但以下是答案 编辑

我们仍然使用CVS,我个人使用git和hg,虽然我对这两种技术都还不太熟悉,但我意识到它们更现代、更好、更快、更分布式,等等

只是每个人都非常习惯CVS,我觉得如果我是推荐并实际将我们当前的CVS服务器升级/移植/转换到git或hg的人,可能会出现一系列问题


最近真的有人这样做过吗?您能否提供一些关于影响人们使用git/hg的见解或提示,以及关于实际更新/转换(如果发生)的一般提示?是否有一些常见的问题需要我大致了解?

不确定您是在寻找关于迁移的一般指南还是两种服务的全面比较,但以下是答案

编辑

自从提到SVN以来,我已经在一些SVN到Git的迁移中使用了它

编辑


我偶然发现了这个很棒的网站,我想我应该把它添加到这个答案中,以便其他人考虑切换到Git进行版本控制。

也许这个StackOverflow问题(及其答案)会有所帮助:


我现在正在处理这个问题,所以我要增加我的2美分(游戏后期)

我负责带领我们的团队脱离CVS进入Subversion、Mercurial或Git。您团队的专业知识、项目和发布方法可能会改变您给出的答案。为了公开起见,我的团队致力于一系列较小的Java项目,并使用Netbeans IDE和Maven来开发和发布软件

颠覆

是的,抱歉,这有点离题,但它仍然是从CVS的一个明确升级。它将导致原子项目提交、广泛的现有用户基础和一些良好的社区。这可能是最简单的过渡,需要的训练最少,但你肯定没有DVCS的能力。我推荐这个工具

Mercurial

Mercurial有很好的文档,甚至对于一些更奇怪的用例也是如此。启动存储库很容易。易于安装(只需使用Python、安装工具和“Easy_install mercurial”)。易于转换,讨厌命令行的开发人员可以直接使用伟大的TortoiseHg工具

我发现这个工具在转换方面比内置的“hgconvert”扩展准确得多,但是ymmv

要教大家hg,请尝试Joel的网站:。有很多书和在线教程,但让每个人都习惯推拉(以及推拉与发布过程的关系)将是最疯狂的部分。我个人认为DVCS的这种推/拉模式更可取,但其他人可能不同意。这实际上就像强迫每个人把他们正在做的每一件事都分支一样

在决定是否使用或只是将整个内容合并到一个大型存储库中时,请选择单个存储库。事实证明,仅仅拥有一个历史记录相互混合的存储库,处理多个subrepo有点痛苦。(您的项目列表及其交互方式将极大地影响此决策)您的IDE和GUI工具将有助于克服某些奇怪之处。转换后,检查每个分支,了解预期结果。切换到分支不再意味着您将获得一些更改的文件。这意味着所有没有分支的东西都不存在

Git

我真的很惊讶我有多喜欢这个工具。我们的IDE集成更好,工具比hg更快(以我的经验),并且更容易设置ssh存储库之类的东西

安装和转换和安装是一个负担。最后,我决定这部分的价值超过了所需的努力。根据问题,“git cvsimport”工具在更大的CVS项目中被破坏了。另外,我的go-to转换工具:非常需要帮助改进Git功能。在我计算了所有blob/dump文件,然后将其导入裸git回购业务之后,我发现它忘记了从CVS获取我的所有分支。也许我从来都不太了解这些工具,但是从CVS到Git最安全的方法似乎是通过SVN

此外,有很多很好的理由反对DVC,例如每个开发人员都会带着整个存储库到处走动的问题。如果你推坏了的jojo,它被拉了,移除它会非常痛苦


要托管http报告,请查看和。RhodeCode的设置比较困难,但功能要多得多。这两种工具都很难用于次级回购,因此要做好准备


至于说服你的老板。我是通过创造“CVS手术”这个术语来实现的。就像其他任何事情一样,记录您在返回CVS和修复提交/回滚错误时所浪费的所有时间。然后,将您的案例表述为“如果我们只是转换成这个工具,您现在将有X小时的免费时间”。我发现在CVS中回滚到未标记的提交、文件级提交,以及查找CVS最大问题中发生的分支更改所涉及的困难。

我刚刚遇到了这个问题,我在某个地方工作过,尝试进行此转换。它不起作用

我这样说并不是为了让任何人泄气,而是为了强调人们可能遇到的问题

问题很多,但基本上都归结为人们没有看到CVS的问题。我知道这很神奇,但它已经在那里很久了。他们已经习惯了这种怪癖,现在对它所导致的问题视而不见。引入一些新的东西,他们无法理解为什么事情需要以不同的方式来完成

其中最大的一个是原子提交的概念。人们无法接受这样一个事实,即修订现在是整个项目树的一种状态,而不是一种状态