cvs常用命令

检查是否安装了cvs
Repository
工作区和操作文件
签出、提交与更新
项目、模块和文件
标记:为特点时间点的一组文件指派标记
分支
合并
cvs -v
创建一个仓库
cvs -d d:/sandbox init
创建初始项目
cvs -d d:/sandbox import -m "" sesame sesame initial
将项目sandbox从仓库check out出文到本地目录sesame
cvs -d d:/sandbox co sesame
签出模块client和server
cvs co client server
签出子模块下的文件
cvs co client/templates
根据版本号签出文件
cvs co -r REL_1_34 client
将签出文件放在rel1.34目录中
cvs co -r REL_1_34 -d rel1.34 client
用仓库中的最新版本更新本地文件
cvs update
更新项目中所有文件和目录
cvs update -d
更新指定文件和目录
cvs udpate File1.java templates
签出指定版本文件
cvs update -r1.6 Contacts.java
将一个工作区的状态恢复到与CVS仓库中的文件状态一致
cvs update -A
安静的更新
cvs -q update -d
cvs选项
cvs -q -d /user/repository checkout -d temp
添加文件和目录
cvs add temp
cvs add File1.java
添加二进制文件
cvs add -kb aa.doc
从仓库中删除文件
cvs remove aa.doc
察看文件状态
cvs status Color.txt
察看仓库中的文件和本地副本之间的差别
cvs diff Color.txt
并排显示一个文件在本地和仓库中的各自版本
cvs diff --side-by-side Color.txt
比较本地副本和仓库的最新版本
>>>>>>cvs diff -rHEAD number.txt
显示被修改之前后之后的部分
cvs diff -c File1.java
cvs diff -c -r1.3 -r 1.4 Contacts.java
显示不同版本之间的差别
cvs diff -r1.6 -r 1.7 aa.java
将最新的文件版本保存到仓库
cvs commit -m "client wants 4 more colors"
察看文件的历史记录
cvs log Color.txt
cvs log -r1.5 Number.txt
检查最近两天的所有活动
cvs log -d "2 days ago" -d today
>>>>>>cvs log -r1.5 Number.txt
逐行的历史记录
cvs ann Color.txt
cvs -d d:/sandbox co -d aladdin sesame
通过网络check out文件
cvs -d :pserver:silma@xyz.com:/var/cvs checkout proj1
CVSROOT: :type:user@server:repository_location
重名名文件
cvs -q upate -d
mv Contacts.java ContactMgr.java
cvs remove Contacts.java
cvs add ContactMgr.java
cvs commit -m "Rename Contacts.java to ContactMgr"
创建发布分支,-b为分支提供分支标记
cvs rtag -b BR_1_0 project
cvs tag REL_1_0
从分支中签出最新的文件,-d指签出的文件存放目录
cvs co -r BR_1_0 -d br1.0 project

CVS的日常使用
==================================
CVS使用流程
   a checkout 尽当本地没有working copy时使用
   b staus 检查服务器上是否有新版本
   c update 如果有,则用update同步文件
   d 做你自己的修改,并保证正确
   e update 看是否有人修改了你的文件
   f 如果有冲突,合并冲突
   g commit 提交你的修改,如果因为又有人提交修改而失败,回到e步
   h 回到b步

和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,

有其他人修改并commit到了CVS库中,CVS会通知你文件冲突
<<<<<<< filename
 你文件上的内容
=======
  服务器上文件的内容
>>>>>>> latest revision number in the repository

CVS拒绝接受包含有上述特定字符串的文件。
由你确认冲突内容的取舍。也可以多人协商解决,修改完成后去掉文件中的冲突标志

conflict:多人修改同一文件的同一区域这就叫冲突,它必须由人来解决,CVS不处理冲突,它只是告诉你存才冲


我们需要做出修改并删去">>>>>>",提交修改

查看状态
------------------------------------
cvs status filename
状态报告,类似这样: 
File: foo.c             Status: Up-to-date 
   Working revision:    1.1.1.1 'Some Date' 
   Repository revision: 1.2     /home/cvsroot/cvstest/foo.c,v 
   Sticky Tag:          (none) 
   Sticky Date:         (none) 
   Sticky Options:      (none) 

这里最重要的就是Status栏,这里总共可能有四种状态: 
Up-to-date: 表明你要到的文件是最新的. 
Locally Modified: 表明你曾经修改过该文件,但还没有提交,你的版本比仓库里的新. 
Needing Patch: 表明有个哥们已经修改过该文件并且已经提交了!你的版本比仓库里的旧. 
Needs Merge: 表明你曾经修改该文件,但是偏偏有个不识相的也修改了这个文件,而且还提交了!

恢复到旧版本
------------------------------------
cvs update -j1.20 -j1.15 filenames
1.20时当前版本号,注意顺序不要反了,记住要commit,为了保证是但前版本号,最好先lock
注意:cvs update -r1.15 file.name,这里的-r不是版本号的意思,是给文件加了一个叫1.15的sticky tag
如果不小心已经加成STICK TAG的话:用cvs update -A 解决

概念:当对我们的代码做过改进,并且准备签入它们的时候,我们必须经过两步处理,这是CVS代码同步
的关键所在,首先,更新我们的本地仓库,使它与主CVS仓库同步。这是通过进入本地代码仓库的根目录
并且执行下面这条命令来实现的:
cvs update -dp
“-dP”标志是可选的,“-d”告知CVS在本地机器上创建所有可能已经添加到主仓库中的新目录,
“-P”标志则告知CVS在本地机器上删除所有已经在主仓库中被清空的目录,缺省,这两项操作都不会执行。
然而,update的主要行为却十分有趣,实际上应该有规律的运行update,而不仅仅是在签入之前,因为它将我们的本地仓库与主仓库进行同步。如果它发现任何在主仓库中的文件比我们的本地仓库上的文件要新,
那么它就会将这些变化引入到我们的本地机器上。不过,它不仅仅只是复制这些文件,而是逐行的比较文件,并且将这些变化从主仓库中修补到我们的本地版本中。如果已经对一个文件进行了修改,而且其他人
也已经对同一个文件进行了修改,那么只要改变不同时发生在代码的同一行上(CVS匹配的是各行的内容,而不仅仅是行号,因此,即使行号发生了变化,它也能够正确的同步),那么CVS就会把这些改变修补到一块,因此,我们可以与其他人同时处理同一个文件,而且,当我们执行update时,任何其他人提交给主仓库的修改都会与我们所做的修改合并。
当然,有肯能两个人对同一文件的同一行进行了修改,这是由于缺乏交流而导致的一种意外,如果发生了这种情况,CVS仅仅提示冲突并通过锁定行方式来强制我们解决这问题。
注意,在进行一次update过程中,没有任何来自于我们机器的文件被移入主仓库。update操作只是从主仓库中将修改过的文件拷贝到我们的机器上,然后将我们所做的修改补到其中,那么我们的修改怎样才能进入主仓库呢?这就是第二步:commit(提交)
cvs commit
CVS将启动缺省的编辑器,并且要求对我们所做的修改进行描述。此描述将会加入到仓库中,以便让其他人了解到什么被改变了,在这之后,我们修改过的文件将会被放入到主仓库中,因此其他所有人在他们下次进行update时就可以得到这些修改过的文件了。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值