共计 2877 个字符,预计需要花费 8 分钟才能阅读完成。
这篇文章主要介绍“linux 中的 cvs 是什么”,在日常操作中,相信很多人在 linux 中的 cvs 是什么问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux 中的 cvs 是什么”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
在 linux 中,cvs 全称“Concurrent Version System”,中文意思为“代码版本控制软件”,它是一种 GNU 软件包,主要用于在多人开发环境下源码的维护。CVS 可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计;CVS 维护的文件类型可以是文本类型也可以是二进制类型。CVS 基于客户端 / 服务器的行为使其可容纳多个用户。
本教程操作环境:linux7.3 系统、Dell G3 电脑。
linux 中的 cvs
CVS(Concurrent Versions System,代码版本控制软件),是一种 GNU 软件包,主要用于在多人开发环境下源码的维护。与它相类似的代码版本控制软件有 subversion。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS 版本控制系统是一种 GNU 软件包,主要用于在多人开发环境下的源码的维护。但是由于之前 CVS 编码的问题,大多数软件开发公司都使用 SVN 替代了 CVS。
Concurrent 有并发的、协作的、一致的等含义。实际上 CVS 可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计。CVS 维护的文件类型可以是文本类型也可以是二进制类型。
CVS 用 Copy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。它明确地将源文件的存储和用户的工作空间独立开来,并使其并行操作。
CVS 基于客户端 / 服务器的行为使其可容纳多个用户。这一特性使得 CVS 成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。
工作思路
在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。由源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后用户可以在本地任意修改,最后用 CVS 命令进行提交,由 CVS 源代码库统一管理修改。这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。
CVS 是并发版本系统(Concurrent Versions System)的意思,主流的开放源码网络透明的版本控制系统。CVS 对于从个人开发者到大型、分布团队都是有用的。
它的客户机 / 服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码。它的无限制的版本管理检出 (check out:注 1) 的模式避免了通常的因为排它检出模式而引起的人工冲突。它的客户端工具可以在绝大多数的平台上使用。
CVS 被应用于流行的开放源码工程中,像 Mozilla,GIMP,XEmacs,KDE 和 GNOME 等。那么它到底怎么样。
你可能会说,它非常棒,但是对于 我 来说它能做什么。首先,基本的:一个版本控制系统保持了对一系列文件所作改变的历史记录。对于一个开发者来说,那就意味着在你对一个程序所进行开发的整个期间,能够跟踪对其所作的所有改动的痕迹。对你来说,有没有出现过由于在命令行上按错键而导致一天的工作都白费的情况呢。版本控制系统给了你一个安全的网络。
版本控制系统对任何人都有用,真的。(毕竟,谁不愿意使用一个安全的网络呢。)它们经常被软件开发团队使用。在团队中工作的开发者需要能够调整他们的各自的修改;一个集中式版本控制系统允许那样做。
代码调整
在传统的版本控制系统中,一个开发者检出一个文件,修改它,然后将其登记回去。检出文件的开发者拥有对这个文件修改的排它权。没有其它的开发者可以检出这个文件 – 并且只有检出那个文件的开发者可以登记 (check in:注 2) 所做的修改。(当然对于管理员有很多方法可以超越这个限制。)
想一下排它的检出可能会如何工作:Bob 的兄弟检出 foo.java 以便加入注释,写好代码后他什么也没做。然后他去吃午饭了。Bob 吃完午饭后,发现他的老板所指给他的一个 bug 在 foo.java 里。他试图签出 foo.java … 但是版本控制系统不允许他这样做,因为他的兄弟已经把它签出了。Bob 不得不等着他的兄弟吃完午饭回来(在这个 好 日子用了两个小时),他才可以修正 bug。
在一个大型的开放源码工程中,因为开发者可能在任意的时区工作得很晚,给予一个开发者阻止任意地方的其它开发者继续处理任意文件的能力很明显无法运转。他们最终将因为不能够在他们想要的时候开展项目而感到厌烦。
CVS 通过它的无限制的签出模式解决了这个问题。签出一个文件并不给定开发者对那个文件的排它权。其它的开发者也可以对其检出,进行他们自己的修改,并且将其登记回去。
等一下 你可能会说。但是后面的登记不是会覆盖前面的吗 回答是不会。详细地回答就是当多个开发者对同一个文件作了修改 CVS 会检测,并且自动合并那些改变。
哇噢。自动的,不用担心 — CVS 会很小心,并且将会自动合并那些只要不是对代码的同一行所作的改动。如果 CVS 不能安全的处理这些改动,开发者将不得不手工合并它们。从此去往何处。
有大量在许多平台上可用的 CVS 附加工具,它们给 CVS 增加了功能或使得 CVS 更容易使用。
使用好处
修改软件时可能会不知不觉混进一些 bug,而且可能过了很久你才会察觉到它们的存在。有了 cvs,你可以很容易地恢复旧版本,并从中看出到底是哪个修改导致了这个 bug。有时这是很有用的。
cvs 用一种聪明的办法把一个文件的所有版本保存在一个文件里,仅仅保存不同版本之间的差异。
cvs 最初由 Dick Grune 在 1986 年 12 月以 shell 脚本的形式发布在 comp.sources.unix 的新闻组第 6 卷里;1989 年 4 月,Brian Berliner 设计了 cvs 并编写了代码。之后 Jeff Polk 帮助 Brian 设计了 cvs 模块和销售商分支支持。
cvs 不能指导你如何构造什么。它只是将你所设计的一种树结构文件保存下来以备恢复之用。
cvs 不能决定如何在一个检出工作目录使用磁盘空间。如果你在每一个目录中都写下 Makefile 或脚本,且必须知道其它一切的相对位置,有时不得不检出整个仓库。
如果你将你的工作模块化,并且建立了一个共享文件的 build 系统(通过 links,mounts,Makefiles 里的 VPATH 等),你就可以随意安排磁盘的使用。
你应该在 cvs 下放一个工具来支持这样一个构造系统(脚本、Makefile 等等)。
有些变化发生在 cvs 范围之外时,要想想什么文件需要重建。一个传统的方法是用 make 来构造,并用一些自动化的工具来产生 make 所用的相关文件。
到此,关于“linux 中的 cvs 是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!