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的项目网站。
<<Version Control with Subversion>>的电子书。
这里是繁体中文的SVN文档(只有部分被翻译过来了)。
不能不提的CVS
虽然我已经转入了SVN的阵营,但是CVS仍然是应用为广泛的版本控制软件之一。这里收集了一些关于CVS的资源。
CVSD的安装与配置
CVS使用简介
(注:这是oscargreat整理的资料,我拿来用相信他不会介意:)
什么是CVS
CVS(Cocurrent Version Systems,并发版本系统)是一个C/S模式的版本控制系统,用于在软件开发过程中记录文件版本,协调开发人员保证文件同步,从而保证项目正确的进行并行开发,并支持版本回滚、bug 跟踪和补丁生成。使用CVS可以有效地对软件开发的源代码和开发文档进行统一的管理和组织。
CVS的工作模式:
CVS的基本工作模式如下:
CVS服务器(代码文档库) / | (版 本 同 步) / | 开发者1 开发者2 开发者3CVS在服务器端维护代码文档库,不同的开发者在本地机器上建立对应代码树,并利用CVS保持本地代码文档同代码文档库的一致。当由于多个开发者对文件的同时修改造成本地与库中的代码文件冲突时,CVS报告并协助解决冲突代码的合并问题。普通开发者(非管理员)对CVS的使用流程如下所示:
Check out(获取) -------------------- Merge(合并) | | ^ v v Conflict(冲突) | Modify(修改)-> Update(更新) ---------------- ^ | | | No Conflict(无冲突) | v Update(更新) <- Commit(提交) | v Export(导出)
check out命令只需在开始建立本地代码树时使用一次,其后更新本地代码则使用update命令。update命令比较服务器和本地代码库的区别,并把本地代码树中过时的文件自动更新。当完成对代码的修改之后,在提交代码之前同样需要使用update命令,以获取他人并行修改的的代码。如果出现冲突(即对同一文件同时进行了修改),CVS将在本地代码中把两者都保留并标记出来,要求开发者处理冲突。在冲突不存在或已解决的情况下,使用commit命令将服务器代码更新为本地代码。CVS要求为更改提供注释,并自动为更新的文件处理版本编号。当软件需要正式发布时,使用export命令导出不包含CVS设置信息的源代码树。
CVS的管理员还使用包括init, import, admin等命令对服务器和代码库进行配置和设置。
CVS在Linux下客户端的使用
Linux下的多种IDE/Editor,如Emacs,Eclipse等都对CVS提供了支持,但基于命令行的cvs操作是为基本和灵活的。以下介绍CVS命令行的使用。