免费注册 查看新帖 |

Chinaunix

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

CVS客户端使用指南 [复制链接]

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

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分支管理
创建分支

  • 设定milestone(即pds-1.0)
  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

  • 切换working copy到指定的分支
  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;

  • TAG和revision的关系
  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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP