为此,你必须将你的目录导入为新的 CVS 项目。可以使用 import 命令:
$ cvs -d ~/sandbox import -m "" colors colors initial N colors/favorites.txt -
No conflicts created by this import
这里我们再次使用 -d 标志来指定存储库的位置,其余的参数是传输给 import 子命令的。必须要提供一条消息,但这儿没必要,所以留空。下一个参数 colors ,指定了存储库中新目录的名字,这儿给的名字跟检入的目录名称一致。最后的两个参数分别指定了 “vendor” 标签和 “release” 标签。我们稍后就会谈论标签。
我们刚将 colors 项目拉入 CVS 存储库。将代码引入 CVS 有很多种不同的方法,但这是 《Pragmatic Version Control Using CVS》 一书所推荐方法,这是一本关于 CVS 的程序员实用指导书籍。使用这种方法有点尴尬的就是你得重新检出工作项目,即使已经存在有 colors 此项目了。不要使用该目录,首先删除它,然后从 CVS 中检出刚才的版本,如下示:
$ cvs -d ~/sandbox co colors cvs checkout: Updating colors U colors/favorites.txt
这个过程会创建一个新的目录,也叫做 colors 。此目录里会发现你的源文件 favorites.txt ,还有一个叫 CVS 的目录。这个 CVS 目录基本上与每个 Git 存储库的 .git 目录等价。
做出改动
准备旅行。
和 Git 一样,CVS 也有 status 命令:
$ cvs status cvs status: Examining . =================================================================== File: favorites.txt Status: Up-to-date -
Working revision: 1.1.1.1 2018-07-06 19:27:54 -0400 Repository revision: 1.1.1.1 /Users/sinclairtarget/sandbox/colors/favorites.txt,v Commit Identifier: fD7GYxt035GNg8JA Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none)
到这儿事情开始陌生起来了。CVS 没有提交对象这一概念。如上示,有一个叫 “提交标识符” 的东西,但这可能是一个较新版本的标识,在 2003 年出版的《Pragmatic Version Control Using CVS》一书中并没有提到 “提交标识符” 这个概念。 (CVS 的最新版本于 2008 年发布的。5 )
在 Git 中,我们所谈论某文件版本其实是在谈论如 commit 45de392 相关的东西,而 CVS 中文件是独立版本化的。文件的第一个版本为 1.1 版本,下一个是 1.2 版本,依此类推。涉及分支时,会在后面添加扩展数字。因此你会看到如上所示的 1.1.1.1 的内容,这就是示例的版本号,即使我们没有创建分支,似乎默认的会给加上。
一个项目中会有很多的文件和很多次的提交,如果你运行 cvs log 命令(等同于 git log ),会看到每个文件提交历史信息。同一个项目中,有可能一个文件处于 1.2 版本,一个文件处于 1.14 版本。
继续,我们对 1.1 版本的 favorites.txt 文件做些修改(LCTT 译注:原文此处示例有误):
blue orange green cyan -
definitely not yellow
修改完成,就可以运行 cvs diff 来看看 CVS 发生了什么:
$ cvs diff cvs diff: Diffing . Index: favorites.txt =================================================================== RCS file: /Users/sinclairtarget/sandbox/colors/favorites.txt,v retrieving revision 1.1.1.1 diff -r1.1.1.1 favorites.txt 3a4 > cyan
(编辑:ASP站长网)
|