CVS命令说明
cvs命令
cvs命令1.安装1.1 建立及初始化CVS工作目录#mkdir /src#msdir /src/cvslib#cvs -d /src/cvslib init //初始化cvs工作目录,可以看到出现CVSROOT目录,表示初始化成功。
1.2 建立系统用户,包括管理员组和普通用户组两种权限。
#groupadd (CVSAdmin) //建立管理员组#groupadd (CVSUser) //建立普通用户组#useradd -g (CVSUser) -M (CVSUser_Sys1)//不用添加Home目录(-M)而直接添加拥有访问CVS权力的系统用户CVSUser_Sys1,属于CVSUser组#passwd CVSUser1//设定CVSUser_Sys1的系统登陆密码(应该可以对真正的CVS用户透明)1.3 设定各组系统用户权限,作为CVS不同类型用户的代表#chgrp -R (CVSUser) /src/cvslib //?添加新的工程是否直接在此处修改权限?#chmod -R u=rx,g=rx /src/cvslib //设定组用户权限此外:<1>CVS用户(组)必须对/src/cvslib目录有执行权(列表权)和写权利,可以没有读权利;#chmod u=wx,g=wx /src/cvslib (o-other不改变)<2>CVS用户(组)必须拥有对/src/cvslib/CVSROOT目录及其中所有文件的读权限(r)和列表权限(x);#chmodg=rx /src/cvslib/CVSROOT (o-other不改变)<3>CVS用户(组)必须拥有对/src/cvslib/CVSROOT目录下history文件的写权限;#chmod u+w,g+w /src/cvslib/CVSROOT/history (o-other不改变)<4>CVS用户(组)如果希望拥有操作(checkout等)某个项目(CVS 中称为模块)代码等资料的权利,必须拥有对该目录及其子目录的rwx 权限。
CVS 常用命令和语法
2)绑定CVS用户到操作系统
命令为:cvs passwd -r winUser cvsUser
例如,将在1)中建立的CVS用户AmigoXie绑定到操作系统用户AmigoXie,命令为:cvs passwd -r AmigoXie AmigoXie,按下Enter键后,提示输入新密码和确认密码,输入后,即完成了绑定CVS用户到操作系统的操作。
批处理命令大全 | cvs相关工具下载地址总结 2008-12-25
CVS 常用命令和语法
关键字: cvs 常用命令 语法
在CVSNT中,有很多常用命令,例如添加CVS用户、将CVS用户绑定到操作系统、登录CVS、检出(check out)文件或目录、提交文件或目录、删除文件或目录等,将本小节中,我们在本小节中将分别进行讨论。
例如,读者输入命令:cvs passwd -x AmigoXie,按下“Enter”键,即完成CVS用户AmigoXie的状态改变。
5)删除某用户
命令为:cvs passwd -X cvsUser
例如,若读者想删除名称为AmigoXie的CVS用户,在命令行下输入如下命令:
cvs passwd -X AmigoXie
1)新增CVS用户
命令为:cvs passwd -a <cvs用户名>
例如,新增一个用户名为AmigoXie的用户,可在命令行输入如下语句:
cvs passwd -a AmigoXie
按下Enter键后,在命令行中输入设置的密码,笔者在此处输入为:19821121,按Enter后再输入确认密码,
cvs commit -m "修改后的文件" amigo.txt
可看到运行结果如下:
CVS客户端安装及使用简单指南
CVS客户端安装及使用简单指南CVS是一种源代码版本控制系统,常用于协调团队成员之间的代码开发。
它可以帮助团队成员在多个工作站上共享和更新源代码,使得多人合作开发更加高效和方便。
本文将介绍如何安装和使用CVS客户端。
一、安装CVS客户端3.双击安装包文件,按照安装向导的指示完成安装。
二、配置CVS客户端1.打开终端(或命令提示符),输入以下命令查看CVS客户端是否已正确安装:```$ cvs --version```如果显示了CVS的版本信息,则说明安装成功。
```$ cvs -d <CVS服务器地址> login```其中,`<CVS服务器地址>`为您的CVS服务器的地址。
然后按照提示输入用户名和密码。
3.配置CVS客户端的全局忽略设置,该设置将决定哪些文件在提交代码时被忽略。
在终端中输入以下命令:```$ cvs -d <CVS服务器地址> edit-cvsroot```三、使用CVS客户端1.检出代码:在终端中输入以下命令,将代码从CVS服务器中检出到本地:```$ cvs -d <CVS服务器地址> checkout <代码仓库路径>```2.更新代码:在终端中进入代码目录,输入以下命令更新本地代码:```$ cvs -d <CVS服务器地址> update```这将与CVS服务器同步,将最新的代码更新到本地。
3.提交代码:在终端中进入代码目录,修改完代码后,输入以下命令提交代码到CVS服务器:``````CVS将会检测并记录您的代码修改,并将其提交到服务器上。
4.比较代码:通过比较工具可以比较不同版本的文件或文件夹之间的差异。
在终端中输入以下命令,比较两个版本的文件差异:```$ cvs -d <CVS服务器地址> diff -r <版本1> -r <版本2> <文件路径>```其中,`<版本1>`和`<版本2>`为要比较的版本号,`<文件路径>`为要比较的文件路径。
cvs常用命令
删除目录:
a. cd dirname && rm * -f
b. cvs remove *
c. cvs commit -m "" *
d. cvs update -P //告诉cvs服务器删除空目录
更改文件名:
a. mv oldfile newfile
工作思路:
在一台服务器上建立一个代码仓库(repository),其中存放了许多项目的源程序,由管理员管理这些源程序,
每个用户在使用仓库前,把仓库里的项目文件下载到本地,先在本地修改,然后用cvs命令提交.
CVS在SCCS和RCS的基础上开发
CVS Concurrent Version System
$ cvs -d :pserver:iry@192.168.1.1:/home/cvsroot
3.管理CVS服务器
在/home/cvsroot/CVSROOT中有三个配置文件: passwd, readers, writers
passwd: cvs用户列表文件
{cvs username}::
{
socket_type = stream
wait = no
user = root
server = /usr/in/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure = USERID
}
# chmod 644 cvspserver
1.服务端
# groupadd cvs
CVS_使用简介1
一、服务器搭建与配置1、安装cvsserver(默认安装,省略)2、新建一个文件夹如:f:/CONFIGROOT;3、在repository configuration中配置cvs仓库,之后可以在F:\CONFIGROOT\CVSROOT中看到许多关于cvs的配置信息4、server settingserver setting中run as 选择具有windows管理者权限的用户5、在cvs control panel的about中重启一下cvs。
6、cmd下,cvsroot环境变量配置:set cvsroot=:pserver:Administrator@HOUQING:/CONFIGROOT(set cvsroot=:协议:用户名@主机名:/仓库名)注意,可以直接在系统环境变量里边设置了cvsroot(只有一个资源库时比较适用),这样不用每次都手动设置cvsroot,但是当有多个资源库的时候,可能会有问题。
7、cvs login登陆Cvs login 资源库名以后登录后,可以用cvs ls查看资源库中的module8、添加用户及密码设置(unix、xp中一般这样操作;win2000等,直接通过计算机用户组管理,并将对应组授权给创建的资源库。
),但不建议xp安装cvsnt。
cvs passwd -a -r Administrator yanshi(和admin用户权限一样的用户)yanshi是你想新添加的用户名 Administrator指定现在用具有admin权限的用户来创建yanshi用户否则出现错误信息:Only administrators can add or change another's password这条命令后就可以设置这个用户的密码。
成功后可以使用这个用户了服务器中,导入一个module:cvs import -m "test_03_import_command" cvs_test_03 /CONFIGROOT导入一个新的moudle cvs_test_03注意:可以通过cvs ?了解查询更多cvs命令的使用。
CVS使用方法范文
CVS使用方法范文CVS (Concurrent Versions System) 是一个开源分布式版本控制系统,它允许多个用户并发地管理和跟踪文档、源代码和其他文件的更改。
CVS可以用于个人项目或者团队项目,它有助于组织和维护代码的版本历史记录,并提供了一种协作开发代码的方式。
下面将详细介绍CVS的使用方法。
安装CVS:2.安装CVS。
执行安装文件,并按照安装向导的指示进行安装。
创建一个新的仓库:1.创建一个空的目录。
选择一个合适的位置在你的计算机上创建一个空目录,用于托管你的仓库文件。
2. 初始化仓库。
在新创建的目录中,运行`cvs init`命令来初始化仓库。
导入代码到仓库:1.在你的本地计算机上创建一个新的文件夹来保存你的代码。
2.打开终端(命令提示符或终端窗口)并导航到你的代码文件夹。
3. 运行`cvs import`命令来将你的代码导入仓库。
命令的格式如下:`cvs import -m "initial import" <repository> <vendor tag><release tag>`检出仓库:1.再次打开终端并导航到你希望保存检出代码的目录。
2. 运行`cvs checkout`命令来从仓库中检出代码。
命令的格式为:`cvs checkout <repository>`更新代码:1.打开终端并导航到你检出代码所在的目录。
2. 运行`cvs update`命令来更新你的代码。
提交更改:1.打开终端并导航到你的代码所在目录。
查看仓库历史记录:1.打开终端并导航到你的代码所在目录。
2. 运行`cvs history`命令来查看仓库的历史记录。
回滚到特定版本:1.打开终端并导航到你的代码所在目录。
2. 运行`cvs update -j <previous_version> -j<current_version>`来将你的代码回滚到特定版本。
cvs log 的用法
cvs log 的用法
cvs log是CVS版本控制系统的一个命令,用于查看指定文件或目录的提交记录。
准确回答cvs log的用法:
cvs log [文件或目录名称]
-cvs log命令后跟需查看提交记录的文件或目录名称,可以是相
对路径或绝对路径。
如果不指定文件或目录名称,则默认查看当前目
录下所有文件的提交记录。
拓展:
1. cvs log命令可以使用多个选项来进行更加详细的查看,包括:
-d [日期范围]:指定查看某个日期范围内的提交记录。
-r [版本号]:指定查看某个版本号的提交记录。
-N:不显示完整的文件路径,只显示文件名。
-S:显示每个提交记录的作者信息。
-b:显示每条提交记录的分支信息。
-t:按照提交时间顺序显示提交记录。
2. cvs log命令会输出每个提交记录的相关信息,包括:
-提交版本号
-修改类型(新增、修改、删除)
-提交者
-提交日期和时间
-提交注释
3. cvs log命令常用于查看某个文件或目录的修改历史,可以帮助开发人员了解变更的细节,找出引入问题的具体提交。
4. cvs log命令还可以与其它CVS命令结合使用,如cvs diff、cvs update等,以方便进行版本控制和代码变更的管理。
总之,cvs log是一个方便的命令,可以查看指定文件或目录的提交记录,帮助开发人员了解代码的修改历史和变更情况。
它在进行版本管理和代码审查时起到了重要的作用。
CVS的常用命令速查手册
CVS的常用命令速查手册作者: 车东 chedong@最后更新:版权声明:可以任意转载,转载时请务必标明原始出处和作者信息关键词:CVS CVSWeb CVSTrac WinCVS CVSROOT概述:CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。
工作模式如下:CVS服务器(文件版本库)/ | \(版 本 同 步)/ | \开发者1 开发者2 开发者3本文主要内容:开发人员入门可以主要挑选2,6看就可以了,CVS的管理员则更需要懂的更多一些,最后还简单介绍了一些Windows下的cvs客户端使用,远程用户认证的选择,及与BUG跟踪系统等开发环境的集成问题。
1.CVS环境初始化:CVS环境的搭建 管理员2.CVS的日常使用:日常开发中最常用的CVS命令, 开发人员 管理员3.CVS的分支开发:项目按照不同进度和目标并发进行 管理员4.CVS的用户认证:通过SSH的远程用户认证,安全,简单 管理员5.CVSWEB:CVS的WEB访问界面大大提高代码版本比较的效率 管理员6.CVS TAG:将$Header$加入代码注释中,方便开发过程的跟踪 开发人员7.CVS vs VSS: CVS和Virsual SourceSafe的比较 开发人员 管理员8.WinCVS: 通过SSH认证的WinCVS认证设置9.CVS的小组协同开发:开发组级的开发环境搭建,通过CVSTrac实现web界面的CVS用户管理及集成的BUG跟踪和WIKI交流。
一个系统20%的功能往往能够满足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能还不到它全部命令选项的20%,更多的功能在实际应用过程中体会,你想用多少就学多少,不时回头看看经常有意外的收获。
CVS环境初始化============环境设置:指定CVS库的路径CVSROOTtcshsetenv CVSROOT /path/to/cvsrootbashCVSROOT=/path/to/cvsroot ; export CVSROOT后面还提到远程CVS服务器的设置:CVSROOT=:ext:$USER@test.server.address#port:/path/to/cvsrootCVS_RSH=ssh; export CVSROOT CVS_RSH初始化:CVS版本库的初始化。
CVS使用说明
检出项目,在某个目录,一般是用户目录运行:cvs co 模块名cvs co –r 版本名路径检出指定版本的文件检出某个模块,在cvs项目根目录运行:cvs co 模块名/路径/需要检出的目录名检查当前代码是否最新,运行cvs –n up –A -n表示运行但不改变硬盘数据添加文件1、添加入口:cvs add –m “注释”文件名2、添加文件:cvs ci –m“注释”文件名注意:提交前用cvs –n up –A检查,所有要提交的都是M状态,所有不需要提交的都没有改动。
否则若执行cvs ci *.v 可能会提交未知的修改更新文件运行:cvs up –A 实际上使用中是merge本次修改的和CVS上保存的信息。
-A 去除跟随文件的tags,dates信息(用tag等checkout文件的时候,cvs会记住该文件的tags,dates信息,并且在文件被修改和提交时,tag,dates等信息保持不变,造成版本混乱)-C发生冲突时,完全覆盖本地的文件(慎用)注意:推荐update前一定要先使用cvs –n up –A进行检查,不存在代码冲突时,再进行update 操作,否则,冲突的代码将被merge执行cvs update得到的状态信息如下:U [path] 服务器上有最新的或者最新版本的文件P [path] 像“U”一样,本地有该文件没修改过的旧版本时,在真正执行update(不用-n 选项)时,会update成新版本并标识PM [path] 这意味着您已经修改过该文件了;而且,有可能资源库中新的更改已成功地合并到该文件C [path] 错误警报,"C" 字符表明该文件存在冲突,需要在使用"commit" 提交前解决这冲突A [path] 该文件是计划要添加的,即添加了但尚未提交,这时你还使用update命令,CVS就会有这个提示,当你"commit" 时,它被正式添加到服务器库中,问题解决查看以往信息cvs log由于修改导致运行不了使用cvs diff查看当前文件和CVS上保存的文件的不同,格式:cvs diff test.c –将本地拷贝与仓库中最新版本进行对比打tag命令:cvs tag tag名字文件名(可以是多个)-d删除某个tag,cvs –d tag名字文件名(可以是多个)tag下载tag checkout(没用过,不清楚)显示文件状态cvs status [–vlR] files-v 显示tag等所有信息小技巧多多使用cvs –n up –A,在操作前确定代码状态执行cvs up –A之前执行cvs ci –m “modified” file之前cvs up命令推荐使用-A选项,避免使用-C-A去除跟随文件版本的tags/dates信息,以便以后修改上传的时候,新版本不再拥有旧tag,以免造成版本的混乱-C强制覆盖本地拷贝,可能造成未上传的改动丢失使用tag checkout下来的代码先up –A再修改原因与cvs up命令推荐使用-A选项相同这点很容易被忽视。
CVS命令说明详解
1.CVS环境变量设置在使用CVS命令时,最好先设置环境变量CVSROOT ,这样能够简化输入的命令内容。
CVSROOT=:pserver:user@server#port:/path/to/cvsroot●pserver是访问方式,口令认证的意思,这是最常用的方式,其他还有gserver,kserver,ext●user是CVS服务器的用户名,●server是CVS服务器的名称或者IP地址●/path/to/cvsroot是你的CVS服务器的CVSROOT目录,根据你的CVS服务器设置做修改或者询问管理员你可以把设置放到你的shell的profile里(.bash_profile,.profile等)这样就不用每次敲一长串命令了SSH加密口令和数据流的环境变量:CVSROOT=:ext:user@server#port:/path/to/cvsrootCVS_RSH=ssh实际上没有CVSROOT也可以,你可以每次用cvs -d :pserver:user@server#port: /path/to/cvsroot来访问,而且它将忽略CVSROOT环境变量,也许你会笑我只有疯子才这么用,不过,cvs可以把每次使用的命令参数放到一个文件中,所以在~/.cvsrc中加入cvs -d :pserver:user@server#port:/path/to/cvsroot即可,它最大的好处是修改了立刻生效,而且它的优先级高于CVSROOT环境变量,到时候不要傻乎乎地来问我,我的环境变量真么不起作用了。
2.CVS仓库初始化CVS版本库的初始化。
cvs init3.一个项目的首次导入cvs import -m " comments" project_name vendor_tag release_tag 执行后:会将所有源文件及目录导入到/path/to/cvsroot/project_name目录下vender_tag: 开发商标记release_tag: 版本发布标记4.登录CVS服务器$cvs login这时候cvs会问你口令,请把你在CVS服务器上的口令敲进去。
cvs使用说明
在控制台输入:cvs passwd,然后控制台会提示将要修改密码,要求输入新的密码:
E:\>cvs passwd
Changing repository password for Able@Able
New password: ***
Verify password: ***
E:\>set cvsroot=:pserver:Administrator@Able:2401/CVS/Home
在控制台输入:cvs login,然后控制台会提示输入密码:
E:\>cvs login
Logging in to :pserver:Administrator@able:2401:/CVS/Home
user1
user2
user3
这些代表user1, user2, user3都是该项目仓库的管理员。将你想指派为管理员的用户的用户名加到文件的末尾,然后提交修改的文件。由于管理员拥有对CVS服务器比较大的使用权限,所以指派管理员的时候要比较小心。
4. 增加能够使用CVSROOT模块的用户
新创建的用户能够使用其账号连接到CVS服务器,但是目前只能够对该项目仓库进行签出操作,不能进行提交。必须让项目的创建者为其指定提交权限之后才能够进行提交。项目创建者是最高权限管理员,由其指定其他用户能够对项目仓库进行的操作,以及指派新的管理员。
3. 项目创建者对参与项目用户的管理
3. 在控制台环境下登录到CVS服务器
以下所讲的在控制台下的操作都是以Windows的控制台作为例子进行讲解,同时必须客户端安装了CVS。<%CVSROOT%>代表前面将账号信息拼装得到的CVSROOT。
cvs 命令
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}
#chown -R a-user1 a-source
#chgrp -R a a-source
#chmod -R 770 a-source
如果希望模块a-source,只有a-user1可以写,同组其它用户可以读,b组成员没有任何权限,把chmod命令改成-R 750就行了。
必须说明的,cvs中默认一个用户checkout代码时候,会在当前模块下生成一个锁文件,如果这个用户对当前模块没有写权限,读是不可能的。配合上面的权限设置,必须改一下cvs服务器配置。改成不在当前模块目录下生成锁文件,把锁文件集中到一个所有用户都有读写权限的目录。修改配置文件CVSROOT/config:
# Put CVS lock files in this directory rather than directly in the repository.
#LockDir=/var/lock/cvs
把LockDir设上就可以了。
第三步测试时候,可以这样设定:
$export CVSROOT=:pserver:cvs@192.168.0.205:2402/usr/local/source1
cvs作为并行版本控制系统,多用户读写是需要的。但有时候希望有些用户只能check out,不能提交新代码。有时希望cvs上的某些用户不能check out一些代码,例如和另一个开发组共用一个CVS,希望另一个组的成员不能check out自己组代码。
cvs log 的用法 -回复
cvs log 的用法-回复[cvs log 的用法]CVS(Concurrent Versions System)是一种版本控制系统,它允许多个人协作开发相同文件,并跟踪文件的变更历史。
而`cvs log` 是CVS 提供的一个命令,用于显示文件的修改历史和版本信息。
本文将一步一步解释`cvs log` 的用法,帮助读者更好地了解和使用这个命令。
步骤一:安装CVS首先,我们需要在本地机器上安装CVS。
1. 在Linux 系统中,可以使用以下命令来安装:sudo apt-get install cvs2. 在Windows 系统中,可以从官方网站下载CVS 的安装程序并按照指示进行安装。
步骤二:创建CVS 仓库和检出工作副本在使用`cvs log` 前,我们需要创建一个CVS 仓库,并通过`cvs checkout` 命令检出一个工作副本。
1. 创建一个CVS 仓库:cvs init2. 将仓库导出到本地文件系统中:cvs checkout <仓库路径>例如:cvs checkout /myproject这将在当前目录下创建一个名为`myproject` 的文件夹,并将仓库的内容导出到该文件夹中。
步骤三:使用`cvs log`现在我们已经完成了必要的准备工作,可以开始使用`cvs log` 命令来查看文件的修改历史和版本信息了。
1. 打开终端或命令提示符,并切换到你的工作副本目录:cd <工作副本路径>例如:cd /path/to/myproject2. 运行`cvs log` 命令:cvs log <文件名>例如:cvs log myfile.txt这将显示`myfile.txt` 文件的修改历史和版本信息。
`cvs log` 输出内容解读`cvs log` 命令的输出结果可以分为几个部分:1. 文件名称和路径:显示当前查看的文件名称和路径。
2. 版本历史:显示每个版本的详细信息,包括版本号、作者、日期、注释等。
cvs-快速查询命令大全
CVS Quick Reference CardAndrew Ford TM CVS is the Concurrent Versions System,the dominant open-source, network-transparent version control system.Command Line Syntaxcvs[global_opts]command[command_opts][command_args]Global options:--allow-root=rootdirSpecify legal CVSROOT directory.(server only) -a Authenticate all communication.(client only) -d root Specify the CVSROOT.-e editor Edit messages with editor.-f Do not read the~/.cvsrcfile.-H Print a help message.--help ditto-l Do not log in CVSROOT/historyfile.-n Do not change anyfiles.-Q Be really quiet.-q Be somewhat quiet.-r Make new workingfiles read-only.-s var=value Set a user variable.-T tempdir Put temporaryfiles in tempdir.-t T race CVS execution.-v Display CVS version and copyright information. --version ditto-w Make new workingfiles read-write.-x Encrypt all communication.(client only) -z gzip-lvl Set the compression level.(client only) CVS Commandsadd Add newfiles or directories.admin Repository administration.annotate Disply revision for each line.checkout Check out sources for editing.commit Commit changes into repository.diff Show differences between revisions.edit Prepare to edit afile being watched.editors List users working on afile.export Exportfiles from CVS.history Show repository access history.import Importfiles into CVS.init Create a CVS repository if none exists.log Print log information forfiles.login Prompt for password for client access.logout Removed stored password.rdiff Show differences between releases.release Indicate that a directory is no longer in use. remove Remove an entry from the repository.rtag Add a symbolic tag to a module.status Display status information.tag Add a symbolic tag to checked-outfiles.unedit Undo an edit command.update Bring work tree into sync with repository.watch Tell CVS to provide notifications.watchers List who is watching afile.Keywords$Author$Login name of the user who checked in the revision $Date$Date and time (UTC)the revision was checked in $Header$Standard header with full pathname of file in repos-itory $Id$Standard header with filename of file in repository $Locker$Login name of the user who locked the revision $Log$Log message supplied on commit $Name$Tag name used to check out the file $RCSfile$Name of the file in repository (without path)$Revision$Revision number $Source$Full pathname of file in repository $State$State assigned to revision Keyword expansion modes:-kkv Generate keyword strings in default format -kkvl Like -kkv except locker’s name is inserted -kk Generate only keyword names in keyword strings -kv Generate old keyword string present in the work-ing file just before it was checked in.-ko no expansion -kb no expansion,file is binary Commands,command options and arguments add [options ][files ]...Adds a new file/directory -k kflag Set keyword expansion -m msg Set file descriptionadmin [options ][files ]...Administration of history files in the repository.-b [rev ]Set default branch -c string Set comment leader -k subst Set keyword substitution -l [rev ]Lock revision rev ,or latest revision -m rev :msg replace the log message of revision rev with msg -o range Delete revisions from the repository.-q Run quietly;do not print diagnostics.-s state [:rev ]Set the state.-t Set file description from standard input -t file Set file description from file -t -string Set file description to string -u [rev ]Unlock revision rev ,or latest revisionannotate [options ]files ...Show last revision where each line was modified.-D date Annotate the most recent revision no later than date -f Use head revision if tag/date not found -l Local –run only in current working directory -R Operate recursively (default)-r tag Annotate revision tagcheckout [options ]modules ...Get a copy of the sources.-A Reset any sticky tags/date/options-c Output the module database-D date Check out revisions as of date(sticky)-d dir Check out into dir-f Use head revision if tag/date not found-j rev Merge in changes-k kflag Use kflag keyword expansion-l Local–run only in current working directory-N Do not‘shorten’module paths if-d specified-n Do not run module program(if any)-P Prune empty directories-p Check outfiles to standard output(avoids sticki-ness)-R Operate recursively(default)-r tag Checkout revision tag(is sticky)-s Like-c,but include module statuscommit[options][files...]Check changes into the repository.-F file Read log message from file-f Force thefile to be committed;disables recursion -l Local–run only in current working directory-m msg Use msg as log message-n Do not run module program(if any)-R Operate recursively(default)-r rev Commit to revdiff[options]files...Show differences between revisions.In addition to the options shown below,accepts a wide variety of options to control output style,for example-c for context diffs.-D date1Diff revision for date against workingfile.-D date2Diff rev1/date1against date2-l Local–run only in current working directory-N Include diffs for added and removedfiles-R Operate recursively(default)-r rev1Diff revision for rev1against workingfile-r rev2Diff rev1/date1against rev2edit[options][files...]Get ready to edit a watchedfile.-a actions Specify actions for temporary watch,whereactions is edit,unedit,commit,all,or none -l Local–run only in current working directory-R Operate recursively(default)editors[options][files...]See who is editing a watchedfile.-l Local–run only in current working directory-R Operate recursively(default)export[options]modules...Exportfiles from CVS.-D date Check out revisions as of date-d dir Check out into dir-f Use head revision if tag/date not found.-k kflag Use kflag keyword expansion-l Local–run only in current working directory-N Do not“shorten”module paths if-d specified-n Do not run module program(if any)-P Prune empty directories-R Operate recursively(default)-r tag Checkout revision taghistory[options][files...]Show repository access history.-a All users(default is self)-b str Back to record with str in module/file/reposfield-c Report on committed(modified)files-D date Since date-e Report on all record types-l Last modified(committed or modified report)-m module Report on module(repeatable)-n module In module-o Report on checked out modules-r rev Since revision rev-T Produce report on all tags-t tag Since tag record placed in historyfile(by anyone)-u user For user user(repeatable)-w Working directory must match-x types Report on types,one or more of TOEFWUCGMAR-z zone Output for time zone zoneimport[options]repository vendor-tag release-tags... Importfiles into CVS,using vendor branches.-b branch Import to vendor branch branch-d Use thefile’s modification time as the time of im-port.-k kflag Set default keyword substitution mode-m msg Use msg for log message-I ign Morefiles to ignore(!to reset)-W spec More wrappersinitCreate a CVS repository if it doesn’t exist.log[options][files...]Print out history information forfiles.-b Only list revisions on the default branch.-d dates Specify dates(d1¡d2for range,d for latest before)-h Only print header-l Local–run only in current working directory-N Do not list tags-R Only print name of RCSfile-r revs Only list revisions revs-s states Only list revisions with specified states.-t Only print header and descriptive text-w logins Only list revisions checked in by specified loginsloginPrompt for password for authenticating server.logoutRemove stored password for authenticating server.Show differences between releases.-c Context diff output format(default)-D date Select revisions based on date-f Use head revision if tag/date not found-l Local–run only in current working directory-R Operate recursively(default)-r rev Select revisions based on rev-s Short patch–one liner perfile-t Top two diffs–last change made to thefile-u Unidiff output formatrelease[options]directoryIndicate that a directory is no longer in use.-d Delete the given directoryremove[options][files...]Remove an entry from the repository.-f Delete thefile before removing it-l Local–run only in current working directory-R Operate recursively(default)rtag[options]tag modules...Add a symbolic tag to a module.-a Clear tag from removedfiles that would not other-wise be tagged-b Create a branch named tag-D date Tag revisions as of date-d Delete tag-F Move tag if it already exists-f Force a head revision match if tag/date not found -l Local–run only in current working directory-n No execution of tag program-R Operate recursively(default)-r rev Tag existing tag revstatus[options]files...Display status information in a working directory.-l Local–run only in current working directory.-R Operate recursively(default).-v Include tag information forfile.tag[options]tag[files...]Add a symbolic tag to checked out version offiles.-b Create a branch named tag.-c Check that workingfiles are unmodified.-D date Tag revisions as of date.-d Delete tag.-F Move tag if it already exists.-f Force a head revision match if tag/date not found. -l Local–run only in current working directory.-R Operate recursively(default).-r rev Tag existing tag rev.unedit[options][files...]Undo an edit command.-a actions Specify actions for temporary watch,where ac-tions is edit,unedit,commit,all,or none. -l Local–run only in current working directory.-R Operate recursively(default).Bring work tree in sync with repository.-A Reset any sticky tags/date/options.-D date Check out revisions as of date(is sticky).-d Create directories.-f Use head revision if tag/date not found.-I ign Morefiles to ignore(!to reset).-j rev Merge in changes.-k kflag Use kflag keyword expansion.-l Local–run only in current working directory.-P Prune empty directories.-p Check outfiles to standard output(avoids sticki-ness).-R Operate recursively(default).-r tag Checkout revision tag(is sticky).-W spec More wrappers.watch{on|off|add|remove}[options][files...] Set notifications forfiles.{on|off}T urn on/off read-only checkouts offiles.{add|remove}Add or remove notification on actions.-a actions Specify actions for temporary watch,where ac-tions is edit,unedit,commit,all,or none. -l Local–run only in current working directory.-R Operate recursively(default).watchers[options][files...]See who is watching afile.-l Local–run only in current working directory.-R Operate recursively(default).Resources CVS home page Quick reference cardsCVS Quick Reference CardRevision0.1(draft)for CVS version1.10[October2000] A TM quick reference cardThe content of this card is in the public domain.Design c 2000Ford&Mason Ltd.All rights reserved.Permission is granted to print and duplicate this card for personal or indi-vidual,internal business use.Copies of this card(&others)can be ordered through our web site:,which also has ver-sions available for downloading.Please send feedback to:feedback@ is a trademark of Ford&Mason Ltd.。
CVS使用手册
CVS使用手册(UNIX)目录CVS安装和配置 (2)安装: (2)配置: (2)CVS常用命令 (4)常用命令举例: (5)命令列表 (8)CVS常见问题答疑: (14)CVS安装和配置安装:1、从CVS网站()免费获得CVS的安装源码文件,例如下载:cvs-1.11.tar.gz文件。
2、将cvs-1.11.tar.gz文件拷贝到配置管理服务器上,本例以SCO Unix Openserver 服务器为例。
3、用gzip解压缩$gzip –dvf cvs-1.11.tar.gz /*可以用Winzip把cvs-1.11.tar.gz解开成cvs-1.11.tar,注意在WINZIP提问是否要全部解开时,回答NO。
*/4、再用tar命令解开文件:$tar xvf cvs-1.11.tar5、到解压缩后的CVS 目录:$cd cvs-1.116、在cvs-1.11目录下执行以下命令:$./configure /* ./configure --prefix=/usr */$make$make install7、如果没有出现任何错误提示,表示安装成功。
可用以下命令验证CVS可执行文件已经安装成功:$find ./ -name cvs –print (默认在/usr/local/bin下)配置:服务器端配置:1、创建项目用户组和用户帐号以超级用户身份创建项目开发用户组和用户帐号(包括CVS管理员用户),假设以informix作为项目用户组,包含成员:Richard、Paul、marry,CVS系统管理员为:cvsroot 创建项目用户组informix:$groupadd informix创建informix组内用户帐号命令:$useradd –g informix username–p password分别用Richard、Paul、marry、cvsroot代替username为项目组成员及CVS系统管理员创建组内用户帐号和密码。
CVS使用简介1(精)
-r 检出指定版本的模块 -D 检出指定日期的模块 -d 检出指定目录而不是模块 -j 合并当前版本和指定版本
必须在项目根目录所在目录执行该命令 cvs co ArchGroupRep/IP_lib/gab
本地已经checkout过项目,现在要co子模块
Checkout—高级功能
example
更新源文件
cvs update [-ac] [-d] [-r tag|-d date] files...
-a 去除跟随文件的tags,dates信息(用tag等checkout文件的 时候,cvs会记住该文件的 tags,dates信息,并且在文件被修 改和提交时,tag,dates等信息保持不变,造成版本混乱) -c发生冲突时,完全覆盖本地的文件(慎用) -r 更新到哪一个tag标识的版本,或者直接跟版本号 推荐使用cvs update -A 推荐update前一定要先使用cvs –n up –A进行检查,不存在代 码冲突时,再进行update操作,否则,冲突的代码将被merge
CVS具有高价值
CVS不可或缺
Outline
CVS概述 CVS初始化 CVS命令简介 CVS使用总结
CVS初始化
创建CVSROOT根目录
export CVSROOT=/usr/local/cvsroot $cd /usr/local/ $mkdir cvsroot $cvs –d /usr/local/cvsroot init /usr/local/cvsroot/CVSROOT cvs import –m “Create Source Dir” cvstest/c tang cvstest $CVSROOT/cvstest/c
CVS简单教程范文
CVS简单教程范文CVS(Concurrent Versions System)是一个版本控制系统,许多开发者使用它来追踪和管理项目的不同版本。
本文将为你提供一个基本CVS 教程,帮助你了解如何开始使用CVS。
第一步:安装CVS第二步:创建一个新的CVS存储库在你的项目文件夹中创建一个新的CVS存储库。
你可以使用以下命令在命令行中完成此操作:```cvs init```这个命令将在当前目录下创建一个名为CVSROOT的文件夹,该文件夹将存储CVS存储库的元数据和其他相关信息。
第三步:导入项目到CVS存储库使用以下命令将你的项目导入CVS存储库:```cvs import -m "initial import" project-vendor project-release```在上述命令中,`-m`参数用于指定导入的注释消息,`project-vendor`和`project-release`是CVS存储库的路径。
这个命令将把你的项目文件复制到CVS存储库。
第四步:设置CVS环境变量接下来,你需要设置一些环境变量,以便你可以轻松地在命令行中使用CVS命令。
首先,将CVS命令所在的目录添加到系统的PATH环境变量中。
例如,如果你的CVS命令位于/usr/local/bin目录下,你可以使用以下命令将它添加到PATH环境变量中:```export PATH=$PATH:/usr/local/bin```然后,设置CVSROOT环境变量以指向你的CVS存储库。
例如,如果你的CVS存储库位于/home/username/CVSROOT目录下,你可以使用以下命令将其设置为CVSROOT环境变量:```export CVSROOT=/home/username/CVSROOT```这样做后,你就可以在命令行中直接使用CVS命令了。
第五步:检出项目使用以下命令从CVS存储库中检出你的项目文件:```cvs checkout project-vendor/project-release```这个命令会将存储库中的项目文件复制到当前目录。
CVS的基本用法
CVS的基本⽤法1. 安装服务器在unix/linux平台上安装CVS服务器安装是超级⽤户执⾏的。
假设选择⼀台Linux服务器,假设主机名为hostcvs进⼊⽬录cvs-1.11.1p1,运⾏:[root@hostcvs /root]$ ./configure[root@hostcvs /root]$ makeroot@hostcvs /root]$ make install查询是否安装服务器whereis cvs 查询是否安装cvs下列操作均在服务器上进⾏cvs仓库(Repository)是保存软件资源的设备,可以根据需要选择⼀⽬录作为库的位置,如,/cvsap ,⽤超级⽤户建相应⽬录。
mkdir /cvssrcmkdir /cvssrc/master (建⽴⽬录root/cvssrc/master)2. CVS服务器的初始化在确定CVS仓库位置后,就可以初始化CVS服务器。
在初始化的过程中CVS创建其⽂件系统,并产⽣原始内容[root@hostcvs /root]$ cvs –d /cvssrc/master init 。
执⾏命令:[root@hostcvs /root]$ ls /cvssrc/master结果: CVSROOT3. 添加⽤户组添加cvsadmin⽤户组2)添加cvsuser⽤户组3)添加CVS管理员帐号到cvsadmin4) 添加CVS普通⽤户到cvsuser5) 让cvs管理员拥有对配置⽬录及其下⽂件的读写权限,同时给cvs的普通⽤户对配置⽬录及其下⽂件的读权限。
[root@cvshost /root]$ chgrp –R cvsadmin /cvsap/src/master/CVSROOT[root@cvshost /root] $ chmod –R 064 /cvsap/src/master/CVSROOT6) 给cvs普通⽤户对⽬录/cvsap/src/master/project的读写权限[root@cvshost /root] $chgrp –R cvsuser /cvsap/src/master/project[root@cvshost /root] $ chmod –R 060 /cvsap/src/master/projectrwx|rwx|rwx每⼀个⽤户都有它⾃⾝的读、写和执⾏权限。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.CVS环境变量设置在使用CVS命令时,最好先设置环境变量CVSROOT ,这样能够简化输入的命令内容。
CVSROOT=:pserver:user@server#port:/path/to/cvsroot●pserver是访问方式,口令认证的意思,这是最常用的方式,其他还有gserver,kserver,ext●user是CVS服务器的用户名,●server是CVS服务器的名称或者IP地址●/path/to/cvsroot是你的CVS服务器的CVSROOT目录,根据你的CVS服务器设置做修改或者询问管理员你可以把设置放到你的shell的profile里(.bash_profile,.profile等)这样就不用每次敲一长串命令了SSH加密口令和数据流的环境变量:CVSROOT=:ext:user@server#port:/path/to/cvsrootCVS_RSH=ssh实际上没有CVSROOT也可以,你可以每次用cvs -d :pserver:user@server#port: /path/to/cvsroot来访问,而且它将忽略CVSROOT环境变量,也许你会笑我只有疯子才这么用,不过,cvs可以把每次使用的命令参数放到一个文件中,所以在~/.cvsrc中加入cvs -d :pserver:user@server#port:/path/to/cvsroot即可,它最大的好处是修改了立刻生效,而且它的优先级高于CVSROOT环境变量,到时候不要傻乎乎地来问我,我的环境变量真么不起作用了。
2.CVS仓库初始化CVS版本库的初始化。
cvs init3.一个项目的首次导入cvs import -m " comments" project_name vendor_tag release_tag 执行后:会将所有源文件及目录导入到/path/to/cvsroot/project_name目录下vender_tag: 开发商标记release_tag: 版本发布标记4.登录CVS服务器$cvs login这时候cvs会问你口令,请把你在CVS服务器上的口令敲进去。
如果没有任何错误信息,恭喜你,成功了!成功登录后将建立一个~/.cvspass文件,保存你的口令,以后就不用输入口令了,也可以把你的口令设置到CVSROOT环境变量中。
CVSROOT=:pserver:user:password@server#port:/path/to/cvsroot5.cvs命令格式cvs [global_opts] command [command_opts] [command_args]●Global options 属于左边cvs的,是全局的●command_opts 属于左边command的,是局部的cvs --help-commands查看命令列表cvs -H command/cvs -help command 查看该命令的选项注:如果你每次使用一些命令都带同样的参数的话,可以把它们放到~/.cvsrc文件中去update -cdiff -cadd -kbcvs -Qcvs global-option comand comand-option arguments6.CVS的日常使用CVS使用流程a.checkout 当本地没有working copy时使用b.staus 检查服务器上是否有新版本c.update 如果有,则用update同步文件d.做你自己的修改,并保证正确e.update 看是否有人修改了你的文件f.如果有冲突,合并冲突mit 提交你的修改,如果因为又有人提交修改而失败,回到e步h.回到b步1)导出仓库中代码到本地工作目录cvs checkout [-d dir ]module_namemodule_name可以暂时理解为目录名,它会在本地但前目录下建立module_name 目录,再把服务器上说有module_name目录下的文件copy到本地module_name目录下。
如果指定-d,则copy到本地dir目录。
注意:第一次checkout后,就不要再通过cvs checkout来同步文件了,而是要进入该目录下进行具体文件的版本同步(添加,修改,删除)操作。
2)同步本地文件cvs update filename将本地文件同步到最新的版本:不指定文件名,cvs将同步所有子目录下的文件。
最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成"先同步后修改"的习惯,和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS库中,CVS 会通知你文件冲突。
<<<<<<< filename你文件上的内容服务器上文件的内容>;>;>;>;>;>;>; latest revision number in the repository由你确认冲突内容的取舍。
也可以多人协商解决,修改完成后去掉文件中的冲突标志conflict:多人修改同一文件的同一区域这就叫冲突,它必须由人来解决,CVS不处理冲突,它只是告诉你存才冲突3)提交本地修改后的文件到CVS库cvs commit -m "write some comments here" file_name注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。
在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。
如果不用写-m "comments"而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。
修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名,把多个文件以同样注释commit到CVS库里了,以下命令可以允许你修改某个文件某个版本的注释:cvs admin -m 1.3:"write some comments here" file_name4)查看状态cvs status filename状态报告,类似这样:File:foo.c Status:Up-to-dateWorking revision: 1.1.1.1'Some Date'Repository revision: 1.2/home/cvsroot/cvstest/foo.c,vSticky Tag:(none)Sticky Date:(none)Sticky Options:(none)这里最重要的就是Status栏,这里总共可能有四种状态:●Up-to-date:表明你要到的文件是最新的●Locally Modified:表明你曾经修改过该文件,但还没有提交,你的版本比仓库里的新.●Needing Patch:表明有个哥们已经修改过该文件并且已经提交了!你的版本比仓库里的旧.●Needs Merge:表明你曾经修改该文件,但是偏偏有个不识相的也修改了这个文件,而且还提交了!5)查看修改历史和注释信息cvs log file_name6)添加文件和目录cvs add new_file_namecvs add -kb new_file_namecvs add dir_nameCVS一般只处理文本文件,它会扩展keyword(宏)并转换行结束符。
对于图片,Word文档等非纯文本的项目,需要使用cvs add -kb选项,否则有可能出现文件被破坏的情况然后确认修改并注释cvs ci -m "write some comments here" new_file_name7)删除文件将某个源文件物理删除后cvs remove file_name然后确认修改并注释cvs ci -m "write some comments here" file_name注意:很多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co; remove=>rm;8)删除空目录cvs update –P9)修改文件名cvs里没有cvs move或cvs rename,因为这两个操作是先cvs removeold_file_name,然后cvs add new_file_name实现的。
10)目录结构同步如果在你checkout后,有人添加了新的文件或目录,你需要把他们取出来cvs update -d11)放弃本地的修改(undo)●如果修改来了本地文件,不想提交,想重新取新文件cvs update -C filename它会先把你的本地文件改名建议:大家把checkout的文件缺省为readonly,把"cvs -r"添加到~/.cvsrc文件中。
这样,你每次修改一个文件前,先cvs edit filename,提交后文件又变成readonly, 如果你想放弃本地的修改,则cvs unedit filename, 它会undo,而且文件又变成readonly12)恢复到旧版本cvs update -j1.20 -j1.15 filenames1.20时当前版本号,注意顺序不要反了,记住要commit,为了保证是前版本号,最好先lock注意:cvs update -r1.15 filename,这里的-r不是版本号的意思,是给文件加了一个叫1.15的sticky tag如果不小心已经加成STICK TAG的话:用cvs update -A 解决13)文件比较cvs diff -c filenamecvs diff -c -r1.8 -r 1.5 filename14)锁定与解锁文件为保证串行的修改文件cvs admin -l filescvs admin -u files15)CVS宏/keywordCVS缺省会对文件进行keyword(宏)替换,在文件中加入这些关键字是个良好的工作习惯。
●$Id$ 关键字是用文件名、版本、时间、作者及代码性质替换,如果使用-l选项取出,在Exp后面会加上登录用户的名称。
除了$Id$关键字,RCS还支持下面常用的关键字:●$Log$ : 你所提供的修改日志信息。
●$Author$ :存入该版本的作者。
●$Locker$ : 该版本的加锁者●$State$ : 该版本的状态Exp(试验版), Stabe(稳定版), Rel(发行版).缺省是Exp●$Date$ : 该版本存入的时间,使用UTC时间格式。