📄 1493.html
字号:
<font color="#FF6699">>></font>
<A href="type21.html" tppabs="http://www.linuxhero.com/docs/type21.html">cvs服务</A> | <A href="copyright.html" tppabs="http://www.linuxhero.com/docs/copyright.html">版权说明</A></font></DIV>
</TD>
<TD><IMG height=22 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1
border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=10 cellPadding=0 width="100%" bgColor=#ffffff
border=0>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
<TR>
<TD vAlign=top align=middle width="60%">
<TABLE cellSpacing=0 cellPadding=0 width="100%"
background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
<TBODY>
<TR>
<TD vAlign=top width="80%">
<DIV align=center>
<FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
</FORM>
<TABLE cellSpacing=0 cellPadding=0 width="95%"
border=0><TBODY>
<TR>
<TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif"
height=30></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width="95%"
align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%"
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<p><FONT class=normalfont><B><font color=blue>cvs完全手册</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:He Wehzhu<br>来自:Linux知识宝库<br>联系方式:无名<br><br>最近项目使用cvs管理,研究了一段时间,参考了几个文档,总结如下<br>
<br>
<br>
CVS完全手册<br>
==========================================================================<br>
He Wehzhu, kerlion@netease.com, created at 2003-11-5<br>
updated at 2003-11-12<br>
版权声明:可以任意转载,转载时请务必标明原始出处和作者信息<br>
==========================================================================<br>
<br>
内容<br>
概述<br>
CVS环境设置<br>
登录CVS服务器: <br>
cvs命令格式<br>
CVS的日常使用<br>
其他常用命令<br>
CVS宏/keyword<br>
CVS分支管理<br>
CVS服务器的安装和配置<br>
Watchers<br>
WinCVS的安装和配置<br>
CVSWEB的安装<br>
<br>
<br>
概述<br>
==================================<br>
<br>
CVS是一个并行版本控制系统,它采用C/S模式,它的复杂度和功能性属于中等,是当今最流行的版本控制系统。它有两个基本的特点:<br>
*保存修改记录:保存了所有文件的修改历史,并可以建立分支<br>
*协作与并行:cvs不推荐使用lock-modify-unlock的串行的工作模式,而采用多人可以并行地修改同一个文件,而在提交时merge conflict;它更适合于大型的工作团体。<br>
使用CVS的好处:<br>
*文件集中管理,大家都可以方便的看到所有人员的最新文件,规范化了文件的管理<br>
*可以查看以前任何的一个版本或修改历史<br>
*可以同时维护多个版本和分支<br>
<br>
<br>
CVS环境设置<br>
==================================<br>
<br>
先不要管CVS服务器的配置,我们先假设已经有一台配置好的服务器,要访问CVS,必需先设置环境变量CVSROOT<br>
CVSROOT=:pserver:user@server#port:/path/to/cvsroot<br>
<br>
*pserver是访问方式,口令认证的意思,这是最常用的方式,其他还有gserver,kserver,ext<br>
*user是CVS服务器的用户名,<br>
*server是CVS服务器的名称或者IP地址<br>
*/path/to/cvsroot是你的CVS服务器的CVSROOT目录,根据你的CVS服务器设置做修改或者询问管理员<br>
你可以把设置放到你的shell的profile里(.bash_profile,.profile等)这样就不用每次敲一长串命令了<br>
<br>
高级功能:现在比较流行是使用ssh来加密口令和数据流<br>
CVSROOT=:ext:user@server#port:/path/to/cvsroot<br>
CVS_RSH=ssh<br>
hints:<br>
实际上没有CVSROOT也可以,你可以每次用cvs -d :pserver:user@server#port:/path/to/cvsroot来访问,而且它将忽略CVSROOT环境变量,也许你会笑我只有疯子才这么用,不过,cvs可以把每次使用的命令参数放到一个文件中,所以在~/.cvsrc中加入<br>
cvs -d :pserver:user@server#port:/path/to/cvsroot<br>
即可,它最大的好处是修改了立刻生效,而且它的优先级高于CVSROOT环境变量,到时候不要傻乎乎地来问我,我的环境变量真么不起作用了。<br>
<br>
<br>
登录CVS服务器: <br>
==================================<br>
$cvs login,这时候cvs会问你口令,请把你在CVS服务器上的口令敲进去<br>
如果没有任何错误信息,恭喜你,成功了!<br>
成功登录后将建立一个~/.cvspass文件,保存你的口令,以后就不用输入口令了.<br>
<br>
cvs命令格式<br>
==================================<br>
cvs [global_opts] command [command_opts] [command_args]<br>
Global options 属于左边cvs的,是全局的<br>
command_opts 属于左边command的,是局部的<br>
cvs --help-commands查看命令列表<br>
cvs -H command/cvs -help command 查看该命令的选项<br>
hints:如果你每次使用一些命令都带同样的参数的话,可以把它们放到~/.cvsrc文件中去<br>
update -c<br>
diff -c<br>
add -kb<br>
cvs -Q<br>
<br>
<br>
cvs global-option comand comand-option arguments<br>
<br>
CVS的日常使用<br>
==================================<br>
CVS使用流程<br>
a checkout 尽当本地没有working copy时使用<br>
b staus 检查服务器上是否有新版本<br>
c update 如果有,则用update同步文件<br>
d 做你自己的修改,并保证正确<br>
e update 看是否有人修改了你的文件<br>
f 如果有冲突,合并冲突<br>
g commit 提交你的修改,如果因为又有人提交修改而失败,回到e步<br>
h 回到b步<br>
<br>
1 cvs checkout module_name<br>
-------------------------------------<br>
module_name可以暂时理解为目录名,它会在本地但前目录下建立module_name目录,在把服务器上说有module_name目录下的文件copy到本地module_name目录下。<br>
注意:第一次checkout后,就不是通过cvs checkout来同步文件了,而是要进入该目录下进行具体文件的版本同步(添加,修改,删除)操作。<br>
<br>
2 cvs update filename<br>
-------------------------------------<br>
将文件同步到最新的版本:不指定文件名,cvs将同步所有子目录下的文件。<br>
最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成"先同步 后修改"的习惯,和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS 库中,CVS会通知你文件冲突<br>
<<<<<<< filename<br>
你文件上的内容<br>
=======<br>
服务器上文件的内容<br>
>>>>>>> latest revision number in the repository<br>
<br>
由你确认冲突内容的取舍。也可以多人协商解决,修改完成后去掉文件中的冲突标志<br>
<br>
conflict:多人修改同一文件的同一区域这就叫冲突,它必须由人来解决,CVS不处理冲突,它只是告诉你存才冲突<br>
<br>
<br>
3 cvs commit -m "write some comments here" file_name<br>
------------------------------------<br>
确认修改写入到CVS库里。<br>
注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m "comments"而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。<br>
注释的质量很重要:所以不仅必须要写,而且必须写一些比较有意义的内容:以方便其他开发人员能够很好的理解<br>
不好的注释,很难让其他的开发人员快速的理解:比如: -m "bug fixed" 甚至 -m ""<br>
好的注释,甚至可以用中文: -m "在用户注册过程中加入了Email地址校验"<br>
<br>
修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名,把多个文件以同样注释commit到CVS库里了,以下命令可以允许你修改某个文件某个版本的注释:<br>
cvs admin -m 1.3:"write some comments here" file_name<br>
<br>
4 查看状态<br>
------------------------------------<br>
cvs status filename<br>
状态报告,类似这样: <br>
File: foo.c Status: Up-to-date <br>
Working revision: 1.1.1.1 'Some Date' <br>
Repository revision: 1.2 /home/cvsroot/cvstest/foo.c,v <br>
Sticky Tag: (none) <br>
Sticky Date: (none) <br>
Sticky Options: (none) <br>
<br>
这里最重要的就是Status栏,这里总共可能有四种状态: <br>
Up-to-date: 表明你要到的文件是最新的. <br>
Locally Modified: 表明你曾经修改过该文件,但还没有提交,你的版本比仓库里的新. <br>
Needing Patch: 表明有个哥们已经修改过该文件并且已经提交了!你的版本比仓库里的旧. <br>
Needs Merge: 表明你曾经修改该文件,但是偏偏有个不识相的也修改了这个文件,而且还提交了!<br>
<br>
5 查看修改历史和注释信息<br>
------------------------------------<br>
cvs log file_name<br>
<br>
<br>
其他常用命令<br>
==================================<br>
1 添加文件和目录<br>
------------------------------------<br>
cvs add new_file_name<br>
cvs add -kb new_file_name<br>
cvs add dir_name<br>
<br>
CVS一般只处理文本文件,它会扩展keyword(宏)并转换行结束符<br>
对于图片,Word文档等非纯文本的项目,需要使用cvs add -kb选项,否则有可能出现文件被破坏的情况<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -