机器的环境变量
CVSROOT=:pserver:administrator:lili00okok@211.68.87.141:2401/Repository
cvsNT配置
如图cvsnt.bmp,cvsnt2.bmp
cvsnt.bmp
cvsnt2.bmp
把cvs命令添加到系统的path
cvs -v 检查是否安装了cvs -v version
创建一个仓库 -d destination
unix cvs -d /home/repository init
windows cvs -d c:repository init
导入项目
cvs import project_name vendor_tag release_tag
cvs import -m"" sesame sesame initial
签出项目
cvs co sesame
查看文件状态
cvs status color.txt
查看本地文件和仓库中的差别
cvs diff --side-by-side -rHEAD color.txt >D:a.txt
提交修改
cvs commit -m"Client wants 4 more colors!"
查看历史记录 -r revision
cvs log -r1.5 color.txt
冲突解决办法1
cvs update 更新本地副本
cvs commit
冲突解决办法2
cvs update
<<<<本地的内容
ichi
=======
uno
>>>>>>>>1.5仓库的代码
签出文件
cvs checkout client server
按照模块
cvs co client/template
按照版本号
cvs co -r REL_1_3 client
按照日期-D by Date
cvs co -D 2003-06-04 client
更改签出目录-d target Directory
cvs co -r EEL_1_34 -d rell client
更新包括新添加的文件
cvs update -d
有选择的更新
cvs update File1.java template
减少更新输出 -q 在update 之前
cvs -q update -d
全局命令 局部命令 -q quiet
cvs -q -d /usr/repository checkout -d temp
添加文件夹
cvs add timelib
添加文件
cvs add Time.java
添加二进制文件 -kb keyword binary
cvs add -kb DataFormat.doc
提交之前发现二进制文件错误
cvs remove DataFormat.doc
cvs add -kb DataFormat.doc
提交之后发现错误
--修改仓库标志
cvs admin -kb DataFormat.doc
--重置本地工作副本标志
cvs update -A DataFormat.doc
--复制一个正确的文件覆盖这个文件
cp ../DataFormat.doc DataFormat.doc
--提交
cvs commit -m"reset -kb flag"
文件特性cvswrappers
--导入文件时使用-W define Wrapper
cvs import -W "*.jar -k 'b'" -W"*.doc -k 'b'" -m""
--使用cvswraper
cvs co CVSROOT
编辑cvswrappers文件添加
*.jar -k 'b'
*.doc -k 'b'
释放本地工作区的同时删除文件
cvs release -d CVSROOT
忽略一个目录下的文件
cvs add .cvsignore
重新命名文件
mv contacts.java contactmgr.java
--删除仓库中的文件
cvs remove contacts.java
--添加一个新的文件
cvs add contactmgr.java
cvs commit -m""
--如果添加一个相同名字的文件版本号不是从1.1开始
--clearAllFlags -A标志清楚所有的标记,并且把指定文件的状态恢复到河仓库文件的状态一直
cvs update -A
重新命名目录
--创建新目录,把旧目录的文件移到新目录,添加新目录,添加新目录下的文件 提交
--更新的时候带 -P prune directories
cvs update -P
查看修改了什么
--本地文件与本地副本最新文件的差别
cvs diff File1.java =
--本地文件与仓库最新文件的差别
cvs diff -rHEAD file1.java
--本地文件与指定版本的差别
cvs diff -r1.1 file1.java
--两个版本之间的差别
cvs diff -r1.1 -r1.2 file1.java
--context diff
cvs diff -c file1.java
--side-by-side
cvs diff --side-by-side file1.java
diff and patch
--u unified diff
cvs diff -u >diff.list
--patch
patch -p0 处理变更冲突 --删除本地副本,重新更新 --保存文件重新提交 --移出标记然后提交 检查变更历史 cvs log file1.java cvs log -r 1.2 -r 1.4 file cvs log -d "2 days ago" -d today 逐行的历史记录 cvs annotate file.java cvs ann file.java cvs ann -r file.java cvs ann -D file.java 移除修改 cvs log file1.java cvs diff -c -r1.3 -r1.4 file1.java -- -j join from 使用相反的顺序指定版本号 计算从高版本到低版本需要的修改,应用到本地副本 cvs update -j1.4 -j1.3 cvs update -j after_change -j before_change --提交变更 cvs commit 7.标记的使用 7.1发布标记 Release branch BR_rel BR_1_0 cvs rtag -b BR_1_0 project 分支中工作 cvs co -r BR_1_0 -d br1.0 project 7.2生成发布版本 Release REL_rel REL_1_0 cvs tag REL_1_0 cvs co -r REL_1_0 -d rel1.0 project 7.3发布程序中修复程序缺陷 Pre bug fix PRE_track PRE_13145 Post bug fix POST_track POST_13145 签出文件 cvs co -r BR_1_0 -d br1.0 project 标记 cvs tag PRE_1234 cvs commit -m "Fix PRE1234" 标记 cvs tag POST_1234 切换主干 cd project cvs update 合并发布版本的缺陷到主干代码 cvs -j PRE_1234 -j POST_1234 update cvs commit -m"Apply fix for PR1234 from BR1.0" 7.4实验性分支 Deploper TRY_initial_yymmdd TRY_DT_030631 Experiment TRY_AH_030631 cvs commit-m"" 创建发布分支 cvs rtag -b TRY_DT_030925 project 更新文件 cvs update -r TRY_DT_030925 清除其他的标记 cvs update -A cvs co -r TRY_DT_092503 -d project_exp project 合并实验分支到主干代码 合并之前都要转到相应的主干代码中合并一个分支中所有的代码稍微有点不同 cvs update -j TRY_DT_092503 8创建初始项目 8.1导入项目 cvs import -m"" wibble wibble initial 名称 开发商 开发商版本号 顶级目录结构 顶级目录中的文件 1.readme文件 要解决的商业问题,运用得基本技术 2.building 包含一些简单的指示,告诉人们怎么构建项目 3.glossary 术语表 顶级目录 doc/所有项目文档,备忘录电子邮件 doc/bibliography参考书目 data/要填充到数据库的数据 db/与schema 有关的所有数据 对于每次更新, 让数据库管理员创建sql更新脚本,这个脚本既要更新schema也能够迁移数据 src/项目的原文件 util/各种项目专用的实用程序工具以及脚本程序,tools/ vendor/第三方库或者头文件 vendorsrc/第三方的库的原代码 wibble | |-readme |-building |-glosarry |-doc/ |-data/ |-db/ |-src/ |-util/ |-vendor/ |-vendorsrc/ 9使用模块 划分子项目 竖直划分:客户端,服务器端 水平划分:数据库代码,计算模块,外部系统接口 cvs co CVSROOT modules alias 模块 client -a proj1/client cvs co client 得到的是 project1/client regular模块 clnt proj1/client half/sample cvs co clnt 得到的目录是 clnt/ 内容是两个目录的综合 ampersan模块 halfruby half/sample fullruby full/sample allruby &halfruby &fullruby 得到的目录是 allruby |-halfruby |-fullruby 带有原代码的库 --导入开发商新发布的版本 -ko keyword off cvs import -ko -m"" vendorsrc/fsf/readline FDF_RL RL_4_4 升级版本导入 cvs import -ko -m"" vendorsrc/fsf/readline FDF_RL RL_4_5 本次导入相当于是更新 合并修改 cvs co -jRL_4_4 -jRL_4_5 vendorsrc/fsf/readline cvs commit -m"" 几个主要的步骤: 1.导入开发商的代码: cvs import -ko -m"load" vendor_module vendor release_tag 2.签出开发商代码到一个本地工作区 cvs co vendor_module 3.修改并提交修改的结果 cvs commit -m"summary of changes" 4.导入一个新的版本 cvs import -ko "update" vendor_module vendor release_tag 5.解决开发商发布的新版本和我们修改的代码之间的冲突: cvs co -jrelease_1 -jreleae_2 vendor_module 6.将修改的代码保存到仓库 cvs commit -m"summary of changes" ©著作权归作者所有:来自51CTO博客作者lili00okok的原创作品,如需转载,请注明出处,否则将追究法律责任 命令职场CVS软件工程&测试



