cvs

cvs客户端常用命令介绍。
一个项目的首次导入
cvs import -m "write some comments here" project_name vendor_tag release_tag
执行后:会将所有源文件及目录导入到服务器CVSROOT(本文就是/cvs)目录下
vender_tag: 研发商标记
release_tag: 版本发布标记
项目导出:将代码从CVS库里导出
cvs checkout project_name
cvs 将在当前目录自动创建project_name目录,并将最新版本的原始码导出到project_name目录中。(当然首先要确定服务器端有project_name这个项目)
将服务器端最新的版本的文件同步到本地,在project_name目录下执行:
cvs update
cvs将同步所有子目录下的文件,也能制定某个文件名/目录进行同步
cvs update file_name
将本地修改过的文件更新到服务器端,在被修改的文件test_file的目录下执行:
cvs commit -m "write some comments here" test_file
添加文件
创建好新文件后,比如:touch new_file
cvs add new_file
注意:对于图片,Word文件等非纯文本的项目,需要使用cvs add -kb选项按2进制文件方式导入(k表示扩展选项,b表示binary),否则有可能出现文件被破坏的情况
比如:
cvs add -kb new_file.gif
cvs add -kb readme.doc
然后确认修改并注释
cvs ci -m "write some comments here" new_file
删除文件
将某个源文件物理删除后,比如:rm file_name
cvs rm file_name
然后确认修改并注释
cvs ci -m "write some comments here" file_name
添加目录
cvs add dir_name
查看修改历史
cvs log file_name
cvs history file_name
查看文件版本
cvs status -v filename
查看当前文件file_name不同版本1.3和1.5的差别
cvs diff -r1.3 -r1.5 file_name
查看当前文件和库中相应文件的差别
cvs diff file_name
移动文件/文件重命名
cvs里没有cvs move或cvs rename,因为这两个操作是能由先cvs remove old_file_name,然后cvs add new_file_name实现的。
删除/移动目录
最方便的方法是让管理员直接移动,删除CVSROOT里相应目录,对目录进行了修改后,需求其研发人员重新导出项目cvs checkout project_name 或用cvs update -dP同步。
项目发布导出不带CVS目录的源文件,使用export,不过export只能针对一个TAG或日期导出,比如:
cvs export -r release1 project_name
cvs export -D 20021023 project_name
cvs export -D now project_name
CVS Branch:项目多分支同步研发
确认版本里程碑:多个文件各自版本号不相同,项目到一定阶段,能给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目,同时也是项目的多个分支研发的基础。
在project_name目录下执行
cvs tag release_1_0 .
会当前project_name下的所有文件添加一个tag版本号。
开始一个新的里程碑:
cvs commit -r 2 标记所有文件开始进入2.x的研发
注意:CVS里的revsion和软件包的tag发布版本能没有直接的关系。比如file_name的revsion达到了1.32,但他的tag版本却是release_1_0。
revision版本号是在每次commit时自动加一的;而tag发布版本号是我们自己定的,其中能有字符串。
版本分支的建立
在研发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支 release_1_0_patch
cvs rtag -b -r release_1_0 release_1_0_patch proj_dir
一些人先在另外一个目录下导出release_1_0_patch这个分支:解决1.0中的紧急问题,
cvs checkout -r release_1_0_patch
而其他人员仍旧在项目的主干分支2.x上研发
在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号
cvs tag release_1_0_patch_1
如果2.0认为这些错误修改在2.0里也需要,也能在2.0的研发目录下合并release_1_0_patch_1中的修改到当前代码中:
cvs update -j release_1_0_patch_1
4.其他注意事项
4.1最佳每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成“先同步
后修改”的习惯。如果你修改过程中,有其他人修改并commit到了CVS
库中,CVS会通知你文件冲突,这时直接commit是不会成功的,要先update,得到其他人和你修改的文件的不同点,然后你根据自己的需要再次修改
文件,然后再commit才会成功。
4.2非常多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co/get; remove=>rm;

你可能感兴趣的:(服务器,File,cvs,Comments,patch,文件同步)