Migrating from CVS

原文:https://docs.gitlab.com/ee/user/project/import/cvs.html

Migrating from CVS

CVS是类似于SVN的旧式集中版本控制系统.

CVS vs Git

以下列表说明了 CVS 和 Git 之间的主要区别:

  • Git 已分发. 另一方面,CVS 使用客户端-服务器体系结构进行集中管理. 这意味着 Git 具有更灵活的工作流程,因为您的工作区是整个存储库的副本. 例如,由于不必与远程服务器进行通信,因此这减少了切换分支或合并时的开销.
  • 原子操作. 在 Git 中,所有操作都是原子操作,它们要么全部成功,要么失败而没有任何更改. 在 CVS 中,提交(和其他操作)不是原子的. 如果对存储库的操作在中间中断,则存储库可能处于不一致状态.
  • 存放方法. CVS 中的更改是按文件(更改集)进行的,而在 Git 中,已提交的文件将全部存储(快照). 这意味着在 Git 中还原或撤消整个更改非常容易.
  • 修订版 ID. 在 CVS 中,更改是针对每个文件的,修订 ID 由版本号表示,例如1.4反映了给定文件已更改了多少次. 在 Git 中,整个项目的每个版本(每次提交)的唯一名称都由 SHA-1 给出.
  • 合并跟踪. Git 使用一种先合并后提交的方法,而不是像 CVS 那样先合并后提交(或先更新再提交). 如果在准备创建新提交(新修订版)时有人在同一个分支上创建了一个新提交并推送到中央存储库,则 CVS 将强制您首先更新工作目录并解决冲突,然后再允许您提交. Git 并非如此. 您首先提交,将状态保存在版本控制中,然后合并其他开发人员的更改. 您还可以要求其他开发人员进行合并并自己解决任何冲突.
  • 签名提交. Git 支持使用 GPG 对提交进行签名,以提高安全性并验证提交确实来自其原始作者. GitLab 可以与 GPG 集成,并显示签名提交是否得到正确验证.

上面的一些内容摘自这个很棒的Stack Overflow 帖子 . 有关差异的更完整列表,请查阅 Wikipedia 上有关比较不同版本控制软件的文章 .

Why migrate

CVS 较旧,自 2008 年以来没有新版本发布.Git 提供了更多可使用的工具( git bisect之一),这使工作流程更加高效. 迁移到 Git / GitLab 有:

  • 学习曲线更短 ,Git 具有庞大的社区和大量的入门指南(请参阅我们的Git 主题 ).
  • 与现代工具集成 ,迁移到 Git 和 GitLab,您可以拥有一个开源的端到端软件开发平台,该平台具有内置的版本控制,问题跟踪,代码审查,CI / CD 等.
  • 支持许多网络协议 . Git 支持 SSH,HTTP / HTTPS 和 rsync 等,而 CVS 仅支持 SSH 及其自身的不安全的 pserver 协议,无需用户身份验证.

How to migrate

以下是一些链接,可帮助您开始进行迁移: