版本控制的简介

CVS采用客户端/服务器架构设计,版本库位于服务器端,实际上就是一个RCS文件容器。每一个RCS文件以“,v”作为文件名后缀,用于保存对应文件的历次更改历史。RCS文件中只保留一个版本的完全拷贝,其他历次更改仅将差异存储其中,使得存储变得更加高效。图1-1展示了CVS版本控制系统的工作原理,可以看到作为RCS文件容器的CVS版本库和工作区目录结构的一一对应关系。

CVS成功地为后来的版本控制系统确立了标准,像提交(commit)、检入(checkin)、检出(checkout)、里程碑(tag或译为标签)、分支(branch)等概念早在CVS中就已经确立。CVS的命令行格式也被后来的版本控制系统竞相模仿。

VN成熟的标志是其完成了后端存储上的变革,即从一开始的BDB(简单的关系型数据库)到FSFS(文件数据库)的转变。FSFS相对于BDB具有更高的稳定性、免维护性,以及实现的可视性。图1-2展示了采用FSFS作为存储后端的SVN版本控制系统的工作原理。

SVN的每一次提交,都会在服务器端的db/revsdb/revprops目录下各创建一个以顺序数字编号命名的文件。其中db/revs目录下 的文件(即变更集文件)记录与上一个提交之间的差异(字母A表示新增,M表示修改,D表示删除)。在db/revprops目录下的同名文件(没有在图1-2中体现)则保存着提交日志、作者、提交时间等信息(称作版本属性)。

SVN相对CVS在本质上并没有突破,都属于集中式版本控制系统,即一个项目只有唯一的一个版本库与之对应,所有的项目成员都通过网络向该服务器进行提交。单点故障是集中式版本控制的死穴,并由此带来数据备份和数据恢复的管理成本。此外集中式版本控制系统还存在着提交瓶颈。

GIT分布式版本控制系统最大的反传统之处在于,可以不需要集中式的版本库,每个人都工作在通过克隆操作建立的本地版本库中,也就是说每个人都拥有一个完整的版本库。分布式版本控制系统的几乎所有操作包括查看提交日志、提交、创建里程碑和分支、合并分支、回退等都直接在本地完成而不需要网络连接。每个人都是本地版本库的主人,不再有谁能提交谁不能提交的限制,加之多样的协同工作模型(版本库间推送、拉回,及补丁文件传送等)让开源项目的参与度有爆发式增长。

时间: 2024-12-15 07:20:17

版本控制的简介的相关文章

一、Git简介

由于工作需要,代码版本控制工具由SVN换为了Git.Git对于我来说,很陌生,不清楚其工作原理,所以查询了一些资料,将自己所得知的内容来汇总一下,梳理一下这方面的知识,同时也给其他想了解Git的童鞋们,提供点参考资料!! 了解软件,我们一般都了解其来源.优缺点(或与其他系统的比较).安装配置.软件的架构,工作原理和使用,对于Git来说也是一样,这里也就这几个方面来说! 版本控制工具简介 问题的发现与解决永远是我们软件行业前进的动力与根源! 说到版本控制工具,不得不说,我们为什么需要它,也就是我们

好代码是管出来的——使用Git来管理源代码

软件开发过程中一个重要的产出就是代码,软件的编码过程一般是由一个团队共同完成,它是一个并行活动,为了保证代码在多人开发中能够顺利完成,我们需要使用代码版本控制工具来对代码进行统一存储,并追踪每一份代码的历史以便于对代码的更改进行追溯,另外一些版本控制工具还提供了冲突合并等高级功能来协调多人对同一代码文件修改.所以版本控制工具可以看做整个编码工作的基础,如果没有版本控制来统一代码库,那么对于复杂且参与人数较多的项目是难以完成的,同时如果没有统一的代码库基础,那么如持续集成.发布等工作将无法开展.

版本管理 - Git 使用入门

Git 是一个分布式的版本管理系统,而 SVN 是一个集中式管理系统. 版本控制 Git 简介 命令行操作 Git 图形化界面操作 Gitlab 服务器环境搭建 原文地址:https://www.cnblogs.com/clxye/p/10354874.html

版本控制简介,git使用----使用GitHub托管代码

关于版本控制: 很久以前,人们苦于对写过的代码进行版本的管理,经常过了一段时间想恢复原来写过的代码却又忘了不知道丢到哪儿去了,有的人用加上时间后缀来命名文件的方法,便于后期维护,但是这样做的麻烦也很大,时间一长,自己也会忘了什么时候保存文件是干嘛用的,而且万一自己的电脑坏掉了造成文件丢失,那么先前的努力都要从头再来.于是人们就想能否有好的版本控制系统来控制版本并能方便的回溯. ----下面是从git-scm.com上摘抄过来的一段关于版本控制的说明(关于Git的一本向导书籍,在线网址是http:

第一讲: Symfony3的简介,开发环境与版本控制

实战篇课程(包括视频,课件,源代码)全套购买地址:http://edu.csdn.net/course/detail/2661 课件 第一讲: Symfony3的简介,开发环境与版本控制 -讲师:lichnow QQ:406879210 由PHPNa原创制作 安装配置本地Symfony3运行环境 windows下建议使用Xampp或者UPUPW macos环境下建议使用brew安装 Linux环境下建议使用lampp或者编译安装 安装完PHP运行环境建议执行以下步骤: 添加PHP执行路径到PAT

Git学习:版本控制、Git简介与安装

1.什么是版本控制(Version Control) 2.Git简介 3.Git的安装 3.1 Linux环境下安装Git 3.2 Windows环境下安装Git 1.什么是版本控制(Version Control) 如果你长期使用过某个软件,或者长期玩过某款游戏,那你就应该听说过“版本”一词,甚至遇到过软件版本的更新,比如腾讯QQ最新版是9.1.6版本,英雄联盟最新版是9.14版本.从用户的角度来说,软件的版本往往是越新越好,因为越新的版本一般意味着更多的功能.更好的界面以及更少的BUG.但是

Git(一):Git与版本控制简介

Intro 版本控制系统是什么 版本控制系统(Version Control System,VCS)可以帮助我们记录和跟踪项目中各文件内容的修改变化.它可以帮我们保存项目的各个版本,以及修改原因,我们可以借用此工具回到项目曾经的某个状态.除此之外,版本控制系统也是帮助人员进行协作开发的利器. Git是什么 Git是一个分布式版本控制系统(Distributed Version Control System,DVCS).与传统的集中式版本控制系统(如CVS.Subversion和ClearCase

Git Step by Step – (1) Git 简介

由于工作的需要,代码版本控制工具要从Perforce换成Git.说实话,刚开始真的很不适应,要从一个可以很好的支持用户界面的工具转到一个命令行工具,而且Git中有几百个命令,一下子就傻眼了. 但是经过一段时间的使用和熟悉,已经慢慢适应了.所有准备一个整理一个Git使用系列,是对自己使用Git的一个总结,也希望可以对同样刚开始使用Git的同学一些帮助.下面就开始探索Git了. Git简介 Git是Linus用C实现的一个分布式版本控制工具,注意这里对分布式的强调.不同于Git,像Perforce.

Node.js【4】简介、安装和配置、快速入门

笔记来自<Node.js开发指南>BYVoid编著 第1章 Node.js简介 Node.js是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为脚本语言世界的一等公民,在服务端堪与PHP.Python.Perl.Ruby平起平坐. Node.js可以作为服务器向用户提供服务,与PHP.Python.RubyonRails相比,它跳过了Apache.Nginx等HTTP服务器,直接面向前端开发. Node.js还可以调用C/C++的代码,这样可以充分利用已有的诸多函