免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1129 | 回复: 0
打印 上一主题 下一主题

Linux 的cvs使用说明(转) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-17 11:01 |只看该作者 |倒序浏览

                windows下的版本控制我们一般用微软的vss,可是在linux下用什么呢——cvs(windows下也可以用客户端)
以下文章作者:xiaolin,来源:
www.linmu100.com
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。工作模式如下:
CVS服务器(文件版本库)
     /     |       \
     (版 本 同 步)
   /       |         \
开发者1  开发者2   开发者3
本文主要介绍
1.如何设置cvs服务端
2.如何设置cvs客户端(linux,windows)
3.cvs客户端常用命令介绍
1.cvs服务端
实际服务端所做工作是很少的,先建立一个[color="#ff0000"]公用目录,在服务器机A输入:
cd /
mkdir /cvs
chmod  -R a+rw /cvs
最好创建几个用户,让他们都能使用cvs目录
groupadd cvs
useradd testuser -g cvs
passwd testuser
2.cvs客户端
2.1如果客户端就在服务器机A上,则直接设置:
CVSROOT=/cvs; export CVSROOT;
CVS_RSH=ssh; export CVS_RSH;
或编辑/etc/profile,添加上面语句,然后重新登录。
在命令行输入cvs init,若连接失败请查看网络和服务器端的目录权限。
2.2如果客户端在其它机子上,则设置:
CVSROOT=:ext:testuser@主机A的ip:/cvs; export CVSROOT;
CVS_RSH=ssh; export CVS_RSH;
2.3window客户端配置,使用wincvs工具(下载地址:
http://download.csdn.net/source/210749
):
在Admin菜单下选择login...
选择CVSROOT:

  
然后选择ssh,设置服务器ip,用户:


准备就绪,如果正常,在wincvs状态栏会显示:
***** CVS exited normally with code 0 *****
说明连接服务端成功。
同样在Admin菜单下的Command Line...可以使用cvs的一些常用命令,如cvs init:


使用CVSROOT,使用方法同上述login...。
3.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;
ok以上就是cvs的使用介绍
一些集成了CVS的IDE环境
eclipse
magic c++
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/26313/showart_444050.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP