CVS命令说明详解
CVS操作手册
Vendor tag指定程序的提供者;releasetag应尽量避免重复..
注意一点;在import进去一个目录以后;是需要重新checkout下来的;可以先把这个目录改个名字;以免产生错误..
4.取仓库模块
5.将服务器的修改更新到自己工作目录
当服务器端有了修改;我们可以用update来把这些修改更新到本地..Update可以针对整个模块、某一个目录或者是单独的文件..
选定需要更新的对象;点右键选择update selection…
在弹出的update settings页面中
选择Create missing directories that exist in the repository添加本地目录中没有的目录
6.将自己的修改提交到CVS服务器
把修改提交到仓库..多人同时开发时;为避免提交时产生冲突;提交之前最好先做update..Update会把更新合并到本地;给解决冲突提供了机会..
commit options页面做重要的提交时要注意填写提交信息..
commit options页面中选择Force commiteven if not modified可强制提交
cvs server aborted: correct above errors first
这时就是产生了冲突;首先应该做update把CVS上的变动合并到自己本地文件中;同时在目录以.#filename.1.X保存了本地未做修改的原版本文件..
cvs以如下方式标记合并:
<<<<<<<和=======之间的部分是自己修改的部分;=======和>>>>>>>1.x之间是其他人提交到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 权限。
linux的_CVS 的命令总结
Linux 的cvs命令总结1)# export CVSROOT = :pserver:username@hostname: / cvsrootpathNote:pserver是访问方式,如果服务器设置的是口令认证,则是pserver。
username是CVS服务器的用户名,可以根据你的设置修改;the_server_name是CVS服务器的名称或者IP地址;/home/cvsroot是你的CVS服务器的CVSROOT目录,根据你的CVS服务器设置做修改或者询问管理员.2) # cvs login //会提示输入用户名和密码这时候cvs会问你口令,请把你在CVS服务器上的口令敲进去:Passwd:xxxxx3)# cvs import -m"test log message" -ko test/aoxj/ testprojuect testCvs的add命令并不真正添加文件,只是将文件注册到项目中,要真正添加文件,还要使用commit命令。
$cvs add -m "test add" testadd.c$cvs commitCvs的remove命令并不真正删除文件,只是将文件从项目中取消,要真正删除文件,还要使用commit 命令。
$cvs rm testadd.c$cvs commit testadd.c一.checkout 签出cvs checkout [-ANPRcflnps] [-r rev| -D date] [-d dir] [-j rev1] [-j rev2] [-k kopt] modules...-A 重置所有粘性标记/日期/kopts-N 如果指定了-d选项,不要使用短模块路径-P 删除空目录-R 操作应用于子目录-c 显示模块数据库的内容-f 如果没有发现标记/日期,强制与一个head版本号匹配-l 只有本目录,不包括子目录-n 不运行模块程序-p 把文件签出到标准输出设备-s 类似-c,但是包括模块状态-r rev 按版本号或标记(tag)迁出模块(暗含-P选项:具有粘性)-D date 签出时间为date时的文件版本(暗含-P选项:具有粘性)-d dir 签出到名称为dir的目录而不是以模块名为名称的目录-k kopt 在签出时使用RCS的kopt -k选项-j rev merge将当前版本与指定的rev版本合并使用范例:(1)cvs co -d bossbi aimc/bossbi将aimc/bossbi签出到当前目录下的bossbi目录(2)cvs co -d uab40 -r R-4-0-0-0 aimc/uabweb将aimc/uabweb的tag=R-4-0-0-0的版本签出到uab40目录,可以用cvs status -v 来察看tag二.commit 将文件签入到仓库中cvs commit [-nRlf] [-m msg | -F logfile] [-r rev] files...此命令将当前目录下的源代码与CVS中最新版本比较,并进行更新。
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命令使用手册
M:修改A:添加D:删除CVS命令使用一、常用命令1.设置CVSROOT路径在.cshrc文件中:setenv CVSROOT ':pserver:niu-jie@192.168.30.251:/export/home/midcvs/smias3.0' 在.bashrc文件中:export CVSROOT=":pserver:niu-jie@192.168.30.251:/export/home/midcvs/smias3.0"2.Cvs co: 将文件checkout到本地目录Cvs checkout project(project是项目工程名)例如:Cvs checkout smias30简写:Cvs co举例:[niu-jie@t1000 proj]$ cvs co smias30cvs checkout: Updating smias30U smias30/ChangeLogU smias30/MakefileU smias30/READMEU smias30/build.sh下面信息就是从库中下载的代码信息。
3.Cvs add: 往版本库中添加新的文件Cvs add file例如:Cvs add ChangeLog (添加ChangeLog)Cvs add *.c(添加当前目录下所有的c文件)举例:cvs add unismg-misc.conf4.Cvs ci: 将改动的文件提交到版本库Cvs commit -m “LogMessage“ PATH例如:Cvs commit -m “add test file for my test“ test.c简写:Cvs ci举例:Cvs ci -m “comment” file/path【注意】:此处必须添加comment(Comment是:详细的说明修改代码的原因或者功能,也即:能够通过Cvs log获知你提交代码的原因就行);“-m”与“”comment””之间必须有一个空格,否则,CVS默认将当前目录下的文件递归签入库中,可能造成库中代码被“污染”,且CVS版本恢复比较困难,故,在-m与“comment”之间保留一个空格;5.Cvs up: 更新到某个版本Cvs update [-r m ] path例如:Cvs update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
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使用详解
CVS 使用详解一、CVS简介CVS 是 Concurrent Versions System 的简称。
它是促进了Open Source 成功发展。
CVS 解决多人合作开发时程序版本控管的问题.二、术语中英对照专案: project档案库: repository汇入专案: import发行版本: version正式版: release修改版次: revision版次编号: revision Number工作版本: working revision库存版本: repository revision存入 : commit (ci / com) (我们常称此一动作为 checkin)取出 : checkout (co / get)更新 : update (up / upd)在库状态 : status (st / stat)差异 : diff (di / dif)新增 : add (ad / new)移除 : remove (re / delete)记录 : log (lo / log)标记 : tag (ta / freeze)最新版 : Up-to-date已修改 : Locally Modified需更新 : Needs Patch需合并 : Needs Merge三、关於 CVS 的版本编号CVS 的版次编号(revision number)只做为 CVS 内部控管之用,和将来发行的软体版本(version)无关。
也就是说:若某一支程序在 CVS 中版次编号为 1.5,而发行的软体版本 "您把它称为" SFS 3.0 版,那麽,这个 1.5 内部版次和 3.0 软体版本,是完全风马牛不相关的!CVS 的版次成长的过程如下:第一次将专案汇入 CVS Server 时,所有档案的版次编号皆为 1.1.1.1。
若修改存入档案库之後,版次编号就由 1.2 起跳,尔後每存入一次,版次编号就增加 1。
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 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添加用户的命令
CVS添加用户的命令1. 在Windows XP上安装CVS服务器端,cvsnt2. 在命令行窗口中首先登录cvs,命令如下:cvs-d:pserver:*******************.0.1:/mycvs login注:这里要用自己操作系统的管理员用户代替administrator3: 添加用户cvs-d:pserver:*******************.0.1:/mycvs passwd -a zyx这样就创建了用户名为zyx的账户,此时在cvs的安装目录下会生成一个passwd文件,里边存储着用户名和经过linux加密后的密码。
这时候如果用命令cvs-d:pserver:*********.0.1:/mycvs login登录系统,可能会提示zyx是无效的用户(在有的机器上这时用户就成功创建不会提示无效用户,后面这条命令也就无需执行,暂且不知道为何不同的机器有这种差异),需要再执行如下命令将该用户与操作系统用户绑定:4:cvs-d:pserver:*******************.0.1:/mycvs passwd -r zyinxin(操作系统用户名) -a zyx这时passwd文件中的记录变为zyc:***(加密的密码): zyinxin(zyc 用户的别名)现在客户端可以用zyc用户来share project了。
到这里又出现了另外一个问题,用zyc来share project以后,在服务器所在的机器上可以通过import from CVS repository来导入项目,但是在其它机器上就提示Connection failed或者connection time out的错误。
这是由于服务器端的防火墙的原因,在控制面板->安全中心->例外中,为端口2401,2402关闭防火墙即可。
CVS配置文件说明1、config文件控制CVSNT的验证工作方式的就是config文件,注意该文件最前面的两行:#Set this to `no" if pserver shouldn"t check system users/passwords#SystemAuth=yes第二行就是我们要修改的内容,默认状态是被注释掉的,SystemAuth有两个值yes和no:yes:pserver将使用Windows系统用户和CVSNT用户来共同验证(若CVSNT用户未定义,则用Windows系统用户来进行验证),默认为yes,CVSNT用户在后面将要介绍的passwd文件中定义。
Cvs使用指南ppt课件
Checkout module一
❖ 选中工作目录,点右键选择:检出项目|模块,弹出新的 对话框,输入要检出的模块名,例如:dev1\src\djgl,确 认
8
Checkout module二
❖ 检出成功提示: ❖ 检出的文件:
9
update
❖ 选中要更新的文件或文 件夹,右键更新选项, 弹出新的窗口,根据实 际情况做相应的设置, 确定,一般情况下需要选 择最后的两个选项
❖ 点开之后出现新的窗口: 路径可以从”读取位
置”上复制需要的一部 分,然后粘贴到module 中,点确定
19
添加文件夹方法1六
❖ 文件夹的路径就设置好了,确定即可
20
添加文件夹方法1七
❖ 将文件夹添加到服务器上之后把本地的文件 夹删除,从服务器上检出该模块,这样做的 目的是确保文件夹是cvs目录,否则无法进行 其它的操作
31
Cvs 使 用 指 南
Cuncurrent Versions System
客户端使用手册
wincvs1.3中文版
1
目录
❖ 登陆
❖ 修改密码
❖ 设置工作目录 ❖ Checkout module
❖ update
❖ 提交
❖ 添加文件夹
❖ 删除
❖ 文件过滤使用用CVSROOT(-d) 2.普通页面的设置:
25
文件过滤使用方法三
❖ 展开与提交按钮配合使用,就可以把文件夹下的 所有可以提交的文件全部显示出来:
26
文件过滤使用方法四
❖ 展开与显示未知文件按钮配合使用,显示所有需要 添加的文件:
27
文件过滤使用方法五
❖ 既显示新增又显示可以提交的文件:
CVS命令详解
CVS命令使用详解目录1 Wincvs基础操作.............................................................................. 错误!未定义书签。
1.1 配置wincvs环境 ..................................................................... 错误!未定义书签。
1.1.1 初始设置........................................................................... 错误!未定义书签。
1.1.2 设置本地工作目录........................................................... 错误!未定义书签。
1.2 登录及注销............................................................................... 错误!未定义书签。
1.2.1 登录................................................................................... 错误!未定义书签。
1.2.2 注销................................................................................... 错误!未定义书签。
1.3 基础操作................................................................................... 错误!未定义书签。
1.3.1 cvs checkout ..................................................................... 错误!未定义书签。
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简明使用方法
CVS简明使用方法1.登录注销代码仓库export CVSROOT=:pserver:user@cvs_server:pathcvs login其中user是CVS服务器上上具有登录所要登录的代码仓库权限的用户,cvs_server是具体的CVS服务器地址,path是所要登录的代码仓库的路径例:export CVSROOT=:pserver:ltx@192.168.0.203:/usr/BH-PROJECTS/sshproxy cvs login以上命令输完后系统会提示输入密码,密码正确且有权限后即可登录192.168.0.203这台CVS服务器上名为sshproxy的代码仓库注销登录命令为:cvs logout2.获得源码的副本cvs checkout modules或者是简写cvs co modules其中modules为所登录的代码仓库下的某模块名称例:键入1中的登录命令之后执行如下命令cvs co mainline该命令表示从1中登录的代码仓库sshproxy里取出名为mainline模块的源码副本到当前目录3.同步工作目录与源码cvs update或者是简写cvs up该命令不加任何参数的时候会去检查当前工作目录上的源码文件和CVS服务器上的源码文件有哪些不同,并把不同的文件列出来,后面可加文件或目录作为参数,意为检查某文件或者某目录下的文件是否和CVS服务器上的源码有不同4.显示不同版本之间的差异cvs diff该命令不加任何参数的时候即为cvs update的强化版,不仅列出不同的文件,而且还列出文件里不同的位置,同样也可以在后面加文件或目录作为参数5.添加新文件或者目录添加新文件cvs add file 添加新目录cvs add path --> mkdir path cvs add path其中file为要添加的文件,path为要添加的目录需要注意的是添加二进制文件需要加上-kb参数cvs add –kb file,cvs服务器本身不能很好有效的识别一个文件是否是2进制文件,所以需要我们自己手动加上这个参数,如果2进制文件不加这个参数上传会导致该文件当成文本文件处理造成数据丢失例:cvs add test.ctest.c为当前工作目录下已经存在了的一文件,执行该命令后将会把该文件添加进CVS服务器上具体已经登录了的代码仓库里cvs add testtest为当前工作目录下已经存在了的一目录,执行该命令后将会把该目录添加进CVS 服务器上具体已经登录了的代码仓库里6.从仓库里删除文件cvs remove file或者简写cvs rm file其中file为想从代码仓库里删除的文件例:cvs rm test.c该命令将从所登录了的代码仓库里删除test.c这个文件,注意,要删除的文件必须和当前的工作目录相对应,而且当前的工作目录也必须已经删除了对应名字的文件加强版命令cvs remove –f file或者简写cvs rm –f file增加了-f参数后可以同时删除当前工作目录下以及cvs服务器上的文件7.将修改提交到仓库cvs commit或者简写cvs ci该命令将所做的修改提交到仓库,包括修改添加删除了文件或者目录,最后都要执行一次这个命令将所做的修改提交打仓库,改命令后面还可以接具体的文件名或者目录名,意为将具体的文件或者目录所做的修改提交到仓库8.导入模块cvs import –m msg modules vendor-tag release-tag其中msg为日志消息,modules为导入的模块名称,vendor-tag和release-tag均为标签,前者为分支的标签,后者为唯一确定导入的发行标签例:cvs import -m "bh sshproxy release 4.1" sshproxy_v4_1 source-v4_1 release-v4_1 该命令向已经登录了的代码仓库里导入名为sshproxy_v_4_1的模块,分支标签为source-v4_1,发行标签为release-v4_1,日志注释为”bh sshproxy release 4.1”,改模块所包含的内容即为当前工作目录下的所有文件以及目录9.查看文件更改日志信息cvs log file显示的head:后面的为该文件当前版本号10.下载指定版本号的某个文件cvs up –p –r version filename > newname其中filename为欲下载的文件,version为欲下载的某个版本的该文件的版本号,newname为下载下来的文件的重新定向的新名字例:cvs up –p –r 1.1 test.c > test_1_1.c该命令将下载1.1版本的test.c并重定向到test_1_1.c文件中。
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简易操作手册
CVS简易操作手册当第一次使用时,先用分配给你的用户名登录,在本地新建一个文件夹作为工作环境,打开wincvs 程序,在菜单“视图/浏览位置/重新设置”里设置你选择你的wincvs文件为你新建的文件夹。
在工作区选中此文件夹,右键选“检出项目|模块”菜单,在弹出菜单里的“服务器上的模块名和路径”里输入“.”,点确定,就能下载所有你有权限下载的文件了。
常用CVS命令:Cvs ls 列出服务器repository(数据仓库)文件列表。
Cvs chown User 更改文件夹所有人,只有文件夹所有人有权限来更改文件夹的权限和使用该命令。
Cvs lsacl 列出选中的文件夹的所有人,用户权限。
Cvs chacl –R User:rcwn 更改文件夹权限,只有该文件夹的所有人有权限更改,R:读;c:创建;w:写;n:无权限。
常用操作:update和commit文件如果文件内容有改变,应即时的提交到服务器上。
现在我们修改一个demo目录中的readme.txt文件,储存后,文件的图标即变成了红色,表示此文件被修改过,这时,在此文件上点击鼠标右键,再点击"Commit selection…"菜单,出现下面的对话框,输入log message后按确定即可。
如果命令执行失败,可能是另外有人修改了这个文件并提交到了服务器。
即服务器上的版本可能比你现有的文件还新,这时你有三种选择:a. 将服务器上的文件和本地的文件合并后再提交先在文件上点击菜单命令"update…", 在弹出的对话框上什么都不要选,点击确定按钮,合并后的文件前面有一个M标记。
b. 用本地的文件将服务器上的文件覆盖在文件上点击菜单命令"commit…",在出来的对话框上切换到Commit options页,选择Force commit,按确定,其中可以看到文件版本从1.2变到了1.3.c. 用服务器上的文件将本地文件覆盖在文件上点击菜单命令"update…",在出现的对话框中选择Get the clean copy,按确定,更新过的文件为绿色,前面标有U标记。
- 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时间格式。