- 论坛徽章:
- 0
|
CVS 使用流程
获得working copy示例: cvs checkout pds
注: cvs用户必须首先获得working copy, 然后才能进行
代码维护以及版本控制. 第一次checkout后, 使用
cvs update同步文件.
与服务器同步文件示例: cvs update
注: 同步所有文件包括子目录. 好习惯:先同步后修改
修改源文件示例: cvs edit ppmp.c
注: 然后使用emacs或vi进行编辑
提交改动示例: cvs commit -m "add pppd killing" ppmp.c
注: -m 注释信息, 如果不指定, 则启动默认编辑器提示输入
注释信息
查看修改历史和注释信息示例: cvs log ppmp.c
查看状态示例: cvs status -v ppmp.c
===================================================================
File: ppmp.c Status: Up-to-date
Working revision: 1.3
Repository revision: 1.3 /home/cvsroot/pds/ppmp/ppmp.c,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
Existing Tags:
pds (revision: 1.1.1.1)
start (revision: 1.1.1.1)
PDS_1_0 (branch: 1.1.1)
status总共有四种状态:
Up-to-date: 表明ppmp.c是最新的.
Locally Modified: 表明你曾经修改过ppmp.c,但还没有commit,比仓库里的新.
Needing Patch: 表明别人已经修改过ppmp.c并且已commit了!仓库里的旧.
Needs Merge: 表明你曾经修改ppmp.c,但是别人也修改了它,而且还提交了!
添加文件和目录 示例: cvs add session.c
注: 对非文本文件,使用cvs add -kb
然后: cvs commit -m"add session Management" session.c
删除文件示例: rm pppd_test.c
cvs remove pppd_test.c
cvs commit -m"delete pppd test" pppd_test.c
显示文件的每一行为谁所修改- cvs annotate ppmp.c
注:类似于ECMS的cmspr_ed
察看不同文件的区别- cvs diff -c -u -C 50 -r1.1 -r1.3 ppmp.c
注: 类似于ECMS的inspect
锁定分支- cvs admin -l PDS_1_0
锁定分支PDS_1_0
- cvs admin -l
锁定主分支
当你锁定某个分支时,别人就不能往该分支上commit code了.
-cvs admin -u PDS_1_0
解锁分支
CVS分支管理
创建分支
cvs tag PDS_1_0 pds
- 开始一个新的milestone, 标记2.0的开发
cvs commit -r 2.0
注:当前所有的文件的版本号必须低于2.0
- 假如在开发pds-2.0时发现1.0有bug, 但2.0又不能用, 这时可以 从PDS_1_0导出一个分支:pds_1_0_b1.
cvs rtag -b -r PDS_1_0 PDS_1_0_b1 pds
分支并行开发
- 在另外一个目录checkout出PDS_1_0_b1, 解决pds1.0中的bug
cvs checkout -r PDS_1_0_b1
cvs update -r PDS_1_0_b1 pds
tag分支- 在PDS_1_0_b1上fix bug后,标记一修正版本号
cvs tag PDS_1_0_p1
合并分支
- 如果这些bug在pds-2.0也存在,则需要合并分支PDS_1_0_b1到2.0
cvs update -j PDS_1_0_b1
cvs commit -m "include pds1.0 bug fix"
注:改命令一定要在2.0的checkout目录里
+-----+ +-----+ +-----+ +-----+ +-----+
! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 2.0 ! +---! 1.2.2.1 !----! 1.2.2.2 !
再次合并分支
- 假如在PDS_1_0_b1又发现了新的bug, 但是已经fix了, 并且已经标定 PDS_1_0_p2, 我们也希望把它合并到2.0中
cvs update -j PDS_1_0_p1 -j PDS_1_0_b1
它的意思是把PDS_1_0_p1(tag)到PDS_1_0_b1(分支)变化了的部分合并2.0中(主干)
+-----+ +-----+ +-----+ +-----+ +-----+
! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 2.0 ! +---! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
提示:
- 当commit文件时,可能会出现冲突(即多人修改同一文件的同一区域), 这时需要手动解决冲突
printf("bye bye");
===========
printf("hello world");
>>>>>>>>>>>
commit=>ci; update=>up; checkout=>co; remove=>rm;
file1 file2 file3 file4 file5
1.1 1.1 1.1 1.1 /--1.1*
CVS每分一次支,版本号增加2位
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43765/showart_344164.html |
|