首页 > 其他分享 >CVS 命令

CVS 命令

时间:2023-07-03 23:31:29浏览次数:25  
标签:仓库 CVS cvs 命令 print commit checkout

一台可以安装你的工作目录的机器上运行 cvs,它被称为客户机(client),然后告诉它你将连到一台安装有仓库的机器,它被称为服务器(server)。通常,使用远程仓库除了仓库名称格式不同,其它方面与本地机没什么区别:


method:][[ user][: password]@] hostname[:[ port]]/path/to/repository


如:


CVSROOT=:pserver:[email protected]:/cvsroot/projects


不推荐直接采用密码的形式,而用


cvs login 命令来代替。


pserver含义:


为了通过口令验证服务器远程在仓库上运行 cvs命令,需要指定 pserver 协议。


下面两种方法同等
 cvs -d :pserver:faun.example.org:/usr/local/cvsroot checkout someproj


CVSROOT=:pserver:[email protected]:2401/usr/local/cvsroot
     cvs checkout someproj


 

 


CVS的命令格式是:
cvs [cvs的选项] cvs-command [command 选项]
如:
cvs commit
cvs -d /usr/local/cvsroot init
cvs update

cvs -H command (列出命令command的使用方法)
运行CVS不需要特殊的权限, 只是在多人时需要设定大家都有读写权.(见后)
注意:使用CVS管理源代码,对于代码的获得,更新,应通过CVS命令来完成.
在服务器端:





下面从一个项目开始.

一,开始项目
用CVS来管理原代码,首先要创建一个\"仓库\"(repository),\"仓库\"简单来说是
一个目录结构,它包括乐要管理的原代码和用于管理原代码的各种管理文件.
使用CVS命令init:
先设置环境变量CVSROOT,指向仓库的绝对路径,然后调用CVS的init命令
bash$ CVSROOT=/usr/local/cvsroot;export CVSROOT
bash$ cvs init
bash$ ls -l $CVSROOT

也可以用CVS参数-d path来覆盖$CVSROOT的值
bash$ cvs -d /usr/local/cvsroot init
许多CVS的命令允许用这种方式指定cvs的根目录.
二,添加文件,目录到仓库
我们要将需要管理的文件加入仓库,并命名
CVS命令import (此命令应只用一次, 以后用cvs add)
例如, 将当前目录下的src/*加入:
bash$ cvs import -m \"init implement\" myproject myvtag mtrtag
-m 指定log message
myproject : 仓库名
myvtag: vendor tag
myrtag: release tag

三,设置权限
源码管理员应对仓库下的文件和目录设置恰当的许可权限来控制访问.
所有的RCS文件(以,v结尾)是只读方式,仓库中的目录应当对使用者有写权,以便允许
其更改.


仓库设好后,就可以利用CVS的命令来管理.(包括对项目,对源代码)
一般的常用的命令:
cvs checkout
从仓库中得到某版本的代码.在本地产生一个copy
cvs update
从仓库中更新本地的代码
cvs commit
将本地修改后的代码提交仓库,并产生新版本.
cvs add
添加新的文件到仓库,在cvs commit命令后生效.
一般的流程是
cvs checkout or cvs update
用你喜欢的编辑器修改本地copy
cvs commit
提交修改.


详细介绍




CVS checkout 命令

从仓库提取指定的文件到当前目录,并建立同样的结构,并创建CVS目录

bash$ cvs checkout project
bash$ cvs checkout project/src/main
为使用便利,我们可以对一个目录建一个缩写,方法是修改$CVSROOT/CVSROOT/下的
modules文件.(当然是用cvs 命令完成)
cvs checkout CVSROOT/modules
cd CVSROOT
vi modules
我们在文件尾加上
src project/src
print project/src/print
cvs commit
以后我们就可以用cvs checkout print来代替
cvs checkout project/src/print

cvs checkout命令缺省是得到最新版本.我们也可以得到某一个老版本
cvs checkout -r 1.1 print
将print的1.1版的代码取出.
cvs checkout的详细用法见cvs -H checkout的输出.

CVS commit 命令
在对文件的修改完成后,用cvs commit提交到仓库.
cvs commit -m \"Update by xxxxx\" project
cvs commit -m \"Update main.c\" main.c
提交完成后,当前的版本号会更新,如原来为1.1,现为1.2. 这两个版本都在
仓库的主干(maintrunk)上.
-m选项可以记录有关提交的注释.如果没有指定-m选项,在环境变量CVSEDITOR
中指定的编辑器被调用(vi是缺省的),提示键入文本,修改记录注释.




CVS update

CVS允许多人同时对一个文件进行修改.
假设泥正在修改文件的一部分,现想合并更新自己的本地拷贝(checkout)和
另一个人所做的修改(已经放在仓库里),可用cvs update
cvs update

CVS tag , CVS rtag

创建分支可以使用户对一些文件进行修改而不会影响主干(当commit时).
创建分支首先为拟修改的某些文件创建一个标签(tag),标签是赋于一个文件或一组文件的符号.在源代码的生命周期里,组成一组模块的文件被赋于相同的标签.

创建标签:在工作目录里执行cvs tag
例: 为src创建标签:
cvs checkout src
cvs tag release-1-0
标签创建后, 就可以为其创建一个分支:
cvs rtag -b -r release-1-0 release-1-0-path print
-b :创建分支
-r release-1-0 :指定存在的标签
releas-1-0-patch:分支
print: 模块名

合并
使用cvs update -j 选项可以将分支上的改变与本地文件拷贝合并.
cvs update -j release-1-0 print.c

cvs release
对源文件作必要修改后, 可以用cvs release 删除本地工作拷贝
并通知其他开发者这个模块不再使用.
cvs release -d print
-d : 删除
print: 目录

冲突
由于CVS允许多人同时修改同一文件,冲突是不可避免的.例如当两人
同时修改同一文件的同一行时.
这时,如用cvs update 更新,CVS检测到冲突的存在,它会将冲突的代码
用\"<<<<<<<<<<<<<<<\", \">>>>>>>>>>>>>>>\"标识.这时需手工处理这段代码.与引起
冲突的开发者协商,并对文件修改后即可用cvs commit提交.
CVS history 命令


cvs history 能够查看以自己的用户名登录在服务器上的目录。


 

标签:仓库,CVS,cvs,命令,print,commit,checkout
From: https://blog.51cto.com/u_16174476/6616995

相关文章

  • Java学习第一天 / 常用的DOS命令
     #盘符命令盘名+:#查看当前目录下多有文件dir#切换目录cd(changedirectory)#回上一个步骤cd..#清理屏幕cls(clearscreen)#退出终端exit#查看电脑IPipconfig#打开应用calcmspaintnotepad#ping命令ping+......
  • Oracle中类似于isql或osql的命令行工具
    sqlplususer/passwd@server_name@filenameserver_name是配置在tnsname.ora中,也可以用netmanager配置APLOI2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=fitwsnydb1d.nam.nsroot.net)(PORT=1523)))(CONNECT_DATA=......
  • Bat批处理命令实现一键安装mysql环境
    已测试可用的版本MySQL8.0;环境:windows7/10MySQL8.0.15免安装版项目需求需要实现一个自动化MySQL配置安装及初始化数据库(初始化包括:设置用户名和密码)。批处理用来对某对象进行批量的处理,即可通过批处理让相应的软件执行自动化操作。MySQL免安装版使用步骤:1.配置环境变量2.创建MySQ......
  • 命令行快捷键
    概述涉及在linux命令行下进行快速移动光标命令编辑编辑后执行历史命令Bang(!)命令控制命令等让basher更有效率常用按键组合功能移动光标按键组合功能Ctrl+a移到行首Ctrl+e移到行尾Ctrl+b往回(左)移动一个字符Ctrl+f往后(右)移动一......
  • yum是什么?(linux命令) .
    一.yum是什么yum=YellowdogUpdater,Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理大量系统的更新问题注:为什么要使用yum而不用apt,最简单的原因,Fedora自带二.yum特点*可以同时配置多个资源库(Repository)*简洁的配置文......
  • shell命令之expect报错
    一、运行shtest.sh报错test.sh:行7:spawn:未找到命令test.sh:行10:send:未找到命令test.sh:行11:interact:未找到命令原因:第一,你不该用sh,因为这是expect脚本,直接执行./e.sh或expect./e.sh第二,确认expect是在/usr/local/bin下参考:https://zhidao.baidu.com/question/7528840......
  • git 开发常用命令
    git中的代码,整个的流程就是上图显示的那样,代码可能会经历最多4个地方会被推送到远程大致流程:clone克隆远程文件到本地=>通过编辑器编辑本地的代码(即在工作区)=>pull拉下远程的代码,可能有人提交代码到同分支=>add添加到暂存区=>commit提交到本地仓库=>push推送到......
  • 网络常用配置和运维命令以及使用方法
    网络常用配置和运维命令以及使用方法原创 Hum0ro 虚拟化时代君 2023-06-2915:09 发表于缅甸收录于合集#网络3个#windows2个#命令1个#运维4个#linux3个哈喽大家好,欢迎来到虚拟化时代君(XNHCYL)。“  大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。......
  • du的命令使用原理
    Linux中的du命令Linux深度学习 2023-07-0207:02 发表于北京您的计算机经常会得到更新、新程序和日志,这些都将消耗磁盘空间。您需要找出这些对象消耗了多少空间,并相应地采取行动。在Linux系统中,您可以使用du命令非常容易地找出磁盘空间使用情况。先决条件Linux或UN......
  • 必须掌握的50个docker命令
    容器操作查看正在运行的容器:dockerps该命令用于列出当前正在运行的容器。查看所有容器(包括停止的容器):dockerps-a使用该命令可以查看所有容器的列表,包括已经停止的容器。启动容器:dockerstart使用该命令可以启动指定ID的容器。停止容器:dockerstop使用该命令可以停止指定ID......