学习CVS
CVS是一个版本控制系统。可以用它存储项目文件的所有修订版本。
仓库——所有项目文件都会保存在仓库中。换句话说,仓库就是保存项目文件备份的地方。应该定期备份仓库,那可都是钱。几乎所有类型的文件都可以存入这个仓库。
准则:x文件是否应存入仓库?
“如果没有最新版本的x文件,我们还能生成并交付最新的应用程序吗?”如果回答是不,那么就应该将x文件保存到仓库。
工作区——是项目文件的本地副本。把项目文件放入工作区,我们才能对其进行编辑并生成。
工作区也可以成为工作目录。
签出——从仓库中取出文件放入工作区。
提交——将修改过的文件放回仓库。
更新——用仓库的文件更新本地文件。
CVS保存签入过的每个版本。
安装CVS
http://www.cvshome.org下载地址。
查看是否已经安装了CVS
开始——运行——cmd——确定。启动命令行窗口。键入cvs -v,回车。看结果。仔细看就知道是否已经安装了CVS。
创建仓库
cvs - d c : / sandbox init
导入
tmpdir> cvs -d c : / sandbox import -m “” sesame initial
-d 表示仓库的位置。
import 导入。
-m 日志消息。
sesame 项目名称。
initial 创建一个项目。
开始一个项目
work> cvs -d c : / sandbox co sesame
work 是工作区目录。首先进入这个目录,然后键入上面的命令。在该目录下会出现文件夹sesame。
查看文件状态
work/sesame > cvs status color.txt
在返回中仔细看Status那一行。
查看工作区文件与仓库文件的不同之处
work/sesame > cvs diff color.txt
必须仔细看返回。
并排显示本地和仓库文件
work/sesame> cvs diff - - side-by-side color.txt
仔细看返回。
提交
work/sesame> cvs commit -m “Client wants 4 more colors”
查看文件历史记录
work/sesame> cvs log color.txt
冲突
两种情况:
修改大代码不重叠,CVS会自己解决。更新后代码能反应出不同的人的修改。
修改代码重叠,CVS会在文件中作出明确标记,详查后进行取舍。
CVS常用命令
签出文件
cvs checkout(cvs co)
work> cvs co client/templates
默认情况下签出默认分支的最新版本文件。
使用-r选项可以签出指定版本的文件。
-r选项根据版本号签出文件。
-d选项根据日期签出文件。
(这两招都没试验成功过!!回来必须问一问。)
更新——使文件保持最新
cvs update
该命令从仓库中取出最新的文件到这个目录。
默认情况下这个命令不会创建任何新目录。
可以使用选项-d签出新建目录和文件。
Work/client> cvs update -d
如果在项目的一个子目录中发出这个命令,那么只能更新该子目录以及其下的所有子目录的文件。
指定文件名称来更新特定的文件。
Work/client> cvs update file1.cs templates
输出的标记:
?表示本地工作区中有,但是CVS不知道的文件。
A本地工作区加入,但是没有加入到CVS仓库的文件。
M已经在本地工作区修改过的文件。
U、P文件仓库中的版本比本地版本新,所以对其进行了更新。
C文件存在冲突。
使用-q选项减少输出。
Work/client>cvs -q update -d
添加文件和目录
添加目录
proj> mkdir timelib
proj> cvs add timelib
添加文件
proj> cvs add time.cs
二进制文件——CVS的灾难
灾难原因:
1 CVS用来计算不同修订版本文件之间的差异的工具并不能适用于二进制文件。
2 二进制文件没有文本文件的行结尾。将每个占一个字节的换行符改成为占两个字节的回车和换行符可能会破坏二进制文件。
3 如果一个二进制文件包含一个与CVS关键字一样的字符串,则扩展该字符串将会是错误的。同时将再次破坏该文件的格式。
为保证二进制文件的安全必须使用-kb选项。
Work> cvs add -kb DataFormat.doc
查看修改
work/client> cvs diff file1.cs
并排显示文件差异
work/client> cvs diff - - side-by-side color.txt
提交变更
work/client> cvs commit -m “check in message”
变更历史
work/client> cvs log color.cs
逐行查看历史记录
work/client> cvs ann color.cs
移除修改
work/client> cvs update -j1.4 -j1.3 color.cs
参考文件:
最常见的8种版本管理系统
暂时只这么多。边用,边学,边补充吧。