<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
版本控制工具SVN和CVS
<!--INVALID LISP CODE--><!-- Page published by Emacs Wiki begins here -->
CVS相信大家都听说过,不过这个广为使用的版本控制工具还有不少问题,包括中文支持和二进制文件的处理都有或多或少的问题。
现在好了,CVS的作者又为我们开发了SVN。Gnome和KDE的开发团队都已经换用SVN了,您为什么不试一下呢?
最基本的用法
建立代码库 svnadmin create /path/to/repos导入数据 svn import /path/to/project file::///path/to/repos -m "initial import"导出数据 svn checkout file::///path/to/repos提交更新 svn commit filename添加文件 svn add删除文件 svn delele 复制文件 svn copy移动文件 svn move查询状态 svn status检查不同 svn diff同步工作目录 svn update合并代码 svn merge;svn resolve
SVN的相关资源
这里是SVN的项目网站。
>的电子书。
这里是繁体中文的SVN文档(只有部分被翻译过来了)。
不能不提的CVS
虽然我已经转入了SVN的阵营,但是CVS仍然是应用最为广泛的版本控制软件之一。这里收集了一些关于CVS的资源。
CVSD的安装与配置
CVS使用简介
(注:这是oscargreat整理的资料,我拿来用相信他不会介意:)
什么是CVS
CVS(Cocurrent Version Systems,并发版本系统)是一个C/S模式的版本控制系统,用于在软件开发过程中记录文件版本,协调开发人员保证文件同步,从而保证项目正确的进行并行开发,并支持版本回滚、bug 跟踪和补丁生成。使用CVS可以有效地对软件开发的源代码和开发文档进行统一的管理和组织。
CVS的工作模式:
CVS的基本工作模式如下:
CVS服务器(代码文档库) / | \ (版 本 同 步) / | \ 开发者1 开发者2 开发者3
CVS在服务器端维护代码文档库,不同的开发者在本地机器上建立对应代码树,并利用CVS保持本地代码文档同代码文档库的一致。当由于多个开发者对文件的同时修改造成本地与库中的代码文件冲突时,CVS报告并协助解决冲突代码的合并问题。普通开发者(非管理员)对CVS的使用流程如下所示:
Check out(获取) -------------------- Merge(合并) | | ^ v v Conflict(冲突) | Modify(修改)-> Update(更新) ---------------- ^ | | | No Conflict(无冲突) | v Update(更新) check out命令只需在开始建立本地代码树时使用一次,其后更新本地代码则使用update命令。update命令比较服务器和本地代码库的区别,并把本地代码树中过时的文件自动更新。当完成对代码的修改之后,在提交代码之前同样需要使用update命令,以获取他人并行修改的的代码。如果出现冲突(即对同一文件同时进行了修改),CVS将在本地代码中把两者都保留并标记出来,要求开发者处理冲突。在冲突不存在或已解决的情况下,使用commit命令将服务器代码更新为本地代码。CVS要求为更改提供注释,并自动为更新的文件处理版本编号。当软件需要正式发布时,使用export命令导出不包含CVS设置信息的源代码树。
CVS的管理员还使用包括init, import, admin等命令对服务器和代码库进行配置和设置。
CVS在Linux下客户端的使用
Linux下的多种IDE/Editor,如Emacs,Eclipse等都对CVS提供了支持,但基于命令行的cvs操作是最为基本和灵活的。以下介绍CVS命令行的使用。
环境变量
CVSROOT 指定代码库的位置 如果CVS代码库在本地机器上,可直接指定代码库的路径,如: export CVSROOT=/path/to/cvsroot 如果CVS代码库在服务器上,则还需指定服务器位置,通信方式 及用户等信息,格式为: CVSROOT=:method:username@cvs.server.address#port:/path/to/cvsroot 例如: export CVSROOT=:ext:horn@166.111.55.119:/cvs/horn 其中ext指定使用SSH协议,horn是有权访问服务器相应目录的 用户。 CVSROOT的值可以在命令行上用-d选项重新指定,如: cvs -d /cvs/horn update
CVS_RSH 指定客户端访问服务器的协议 使用SSH协议时,可如下设置: export CVS_RSH=ssh
基本命令
cvs的命令行格式为:
cvs [options] command [options] filename
具体参数可参考info cvs
cvs的命令如果不带参数,则总是以当前所在目录作为操作对象。
以下介绍基本命令:
init CVS代码库的初始化,管理员使用。 cvs -d /cvs/horn init 将/cvs/horn初始化为一个代码库
import 导入一个项目/模块,管理员使用。 cvs import -m "comments" project_name vendor_tag release_tag 执行后,会将当前目录下所有文件及目录导入到 /path/to/cvsroot/project_name 目录下。 vender_tag: 开发商标记 release_tag: 初始版本标记 -m 参数如果不加,则cvs会自动启动vi,要求输入注释。 如: cd /home/horn/blob-2.05/ cvs import blob Hornworks InitVersion
checkout/co 从服务器获取代码,在本地建立代码树 cvs checkout project_name
update/up 将本地文件同步到最新的版本 cvs update filename 不指定文件名,cvs将当前目录下所有子目录下的文件。如前 所述,在每天工作前和工作之后commit之前都应当update,以 保证本地代码总是最新的,且和服务器的代码无冲突。
commit/ci 将修改同步到CVS库里 cvs commit -m "write some comments here" file_name CVS的很多动作都是通过cvs commit进行最后确认并修改的。 在确认的前,还需要用户填写修改注释,以帮助其他开发人员 了解修改的原因。
add 向项目中添加文件/目录 cvs add new_file 添加文件之前应当首先创建文件,之后使用cvs add添加。添 加文件的操作只有经过cvs commit之后才真正被添加到代码库 中。对于图片,Word文档等非纯文本的项目,需要使用 cvs add -kb 选项按二进制文件方式导入(k表示扩展选项,b表示 binary),否则有可能出现文件被破坏的情况。
remove/rm 从项目中删除文件 cvs remove file_name 删除时,应当先将某个源文件物理删除后,再使用remove命令。 比如: rm file_name cvs remove file_name 然后commit确认删除。 也可以加上-f参数将两步合一: cvs remmove -f file_name cvs commit -m "why delete file" cvs不允许删除目录,空目录在update时会依选项自动忽略。
log/history 查看修改历史 cvs log file_name
diff 查看文件不同版本的区别 cvs diff -r1.3 -r1.5 file_name 查看1.3版本何1.5版本的区别 cvs diff file_name 查看本地和库中文件的区别
tag 标记版本号 cvs tag release_version CVS自动维护每个文件的版本号,文件每修改一次,则其版本 号自动增加。此版本号不能用作阶段性发布使用。tag命令为 当前目录下所有文件标记一个统一的发行版本号。 如: cd blob/ cvs tag 2.1.0-Hornworks tag命令应当由项目负责人统一指定和使用。
export 项目发布, 导出不带CVS目录的源文件 本地代码树的每个目录下,CVS都创建了一个CVS/目录用于记 录当前目录和CVS库之间的对应信息。export可以导出不包含 CVS目录的代码树。 cvs export -r release project_name 导出版本号标记为 release的代码 cvs export -D 20021023 project_name 导出截至2002.10.23时最新的文件
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1553967
相关推荐
自己总结的svn与cvs对比,概括总结 概括总结
简要cvs与svn的比较 1 对重命名、删除文件的支持 cvs:不支持本地文件重命名提交 删除分remove和erase两种前者把本地和库中文件都删除 后者只是删除本地文件 不能删除文件夹 svn:支持文件重命名提交系统会提示...
svn1.3版本的安装过程 以及svn和cvs的比较。 仅供各位大虾参考!
SVN对比CVS的优缺点,希望对你学习代码管理工具有所帮助!
一键清除SVN或CVS版本控制目录
清除SVN、CVS版本控制信息,支持此文件后,在鼠标右键将多出Delete CVS/SVN Folders选项。
自己编写的Tortoise SVN CVS 图标修复软件,可以恢复资源管理器上的SVN,CVS图标显示问题。
介绍了SVN-Importer和CVS2SVN两种从CVS迁移到SVN的两种方法,并把SVN-Importer和CVS2SVN软件打包在内。下载后直接可以使用。
清除SVN、CVS、VSS文件的bat工具;清除SVN、CVS、VSS文件的bat工具
CVS与SVN区别 通过CVS与SVN的对比,详细介绍SVN与CVS的区别
适用windows平台 压缩文件包含kill-cvs.bat和kill-svn.bat 删除bat所在目录中,的cvs或者svn配置文件(包含所在目录和子目录)
NULL 博文链接:https://zzxanadu.iteye.com/blog/690400
技术选型对比:代码管理工具SVN、CVS、CC、VSS、GIT使用说明书
svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs svn cvs ...
CVS和SVN配置学习 欢迎大家下载学习
如何为CVS项目团队实现升级SVN的解决方案书,包括前期预研报告和方案对比报告,以及详细的实现方案和升级代码讲解。
将cvs库转换为svn库需要用到的工具cvs2svn
二、 SVN(Subversion) - CVS(Concurrent Version System)的替代和升级版本先说说CVS,CVS是开源代码的配置管理工具,其源代码和安装文件都可以免费下载。记得在学校读研的时候,学校实验室的代码全部都用CVS管理,为...
与常用的版本控制工具 CVS, Subversion 等不同,它 采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的 速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git...
cvs2svn is a program that can be used to migrate a CVS repository to Subversion (otherwise known as "SVN") or git. Documentation: The list of cvs2svn features explains briefly why converting a ...