版本控制——总结
里边有关于文字性质定义
作为Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。
仅适用于团队开发,不适用于企业级开发。
一个典型的服务器/客户端软件,有Unix版本的CVS 、Linux版本的CVS和Windows版本的CVS。
功能相对单一,适用于几人的小团队。
代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工作。
是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。
Git本身关心档案的整体性是否有改变,但多数的CVS,或Subversion系统则在乎档案内容的差异。因此Git更像一个档案系统,直接在本机上取得资料,不必连线到host端取资料回来。
特征 | CVS | Git | Mercurial | Subversion |
---|---|---|---|---|
是否原子提交 | 否 | 是 | 是 | 是 |
文件和目录是否可以移动或重命名 | 否 强制手动进行, 可能会损坏历史记录 | 是 | 是 | 是 |
在移动或重命名之后智能合并 | 否 | 否 | 是 | 否 |
文件和目录拷贝是否支持 | 否 | 否 | 是 | 是 |
远程存储仓库的备份 | 间接的. 可以使用John Polstra写的CVSup | 是 | 是 | 间接的. 可以使用Chia-liang Kao的SVN::Mirror插件(好像是台湾人)或Shlomi Fish的SVN-Pusher工具 |
是否传递变更到父仓库 | 否 | 是 | 是 | 是的, 使用要么是Chia-Ling Kao的SVN::Mirror脚本或者Shlomi Fish的svn-push工具 |
仓库权限 | 有限“pre-commit hook scripts“能够被用来实现各种权限控制系统 | 是 | 是的. 基于HTTP权限的WebDAV-based模块能够支持基于目录级的仓库 | |
变更集 | 否 | 是 | 是 | 部分支持,对于一次提交会隐式创建一个变更集 |
跟踪线性的文件历史 | 是 | 是 | 是 | 是 |
能够只在仓库的单目录下作用 | 是 | 否 | 是的. 基于HTTP权限的WebDAV-based模块能够支持基于目录级的仓库 | 是 |
跟踪未提交的变化 | 是 | 是 | 是 | 是 |
基于单个文件的提交信息 | 否,基于单次变化 | 否,基于变更集 | 否 | 否,无特征 |
文档 | 非常棒. 有很多在线的tutorials和资源, 在线的书籍. 命令行客户端也支持一个在线的帮助系统 | 良好. 短的帮助比较简洁难懂. man页很有分量, 但容易误解. 有很多tutorial | 很好. 有基于公司的书籍和wiki. 每个命令都集成了帮助 | 很好. 有一些在线的书籍和一些在线的tutorials和资源. 并且书籍是以docbook/xml写的所以很容易变换成其他格式. 命令行同样提供了在线的帮助系统 |
配置是否轻松 | 好. 是个事实上的标准. 基于每个系统都有并且很容易配置 | 好. 在现有平台上二进制可用. 需要C编译器和Perl. 在windows上需要cygwin. 并有一些Unix特征 | 非常好. 几乎所有平台都有二进制包. 从源码编译需要python2.3以上, 并且需要C编译器 | Subversion服务器需要安装在apache2模块里(如果有人希望HTTP作为底层协议的话)或使用它自身的服务器. 客户端需要Subversion特征的逻辑还有WebDAV库(针对HTTP). 安装组件很直接, 但是需要一些额外的工作(假定subversion在某些平台没有二进制包可用) |
命令集 | 包含了3个经常用到的命令的简单的命令集(cvs commit, cvs update和cvs checkout)和其它一些 | 命令集很丰富, 并且和CVS不兼容 | 尝试模仿CVS交互方式, 但是偏离了基于不同的设计的意图 | 类CVS的命令集, 能够很容易被CVS用户使用 |
网络支持 | 好. cvs在不同的场合使用不同的协议. 协议能够通过ssh链接的加密隧道进行 | 非常棒. 能够使用本地的git协议, 但也能在rsync, ssh, HTTP和HTTPS上使用 | 非常棒. 使用HTTP或ssh. 远程访问会非常安全, 在只读网络里不需要上锁 | 非常好. Subversion服务器支持WebDAV+DeltaV(基于HTTP或HTTPS)作为底层协议, 或者它自身的协议同样能在ssh链接通道里使用. |
可移植性 | 好. 客户端能在UNIX, Windows和Mac OS上使用. 服务器端能在UNIX, 附有UNIX模拟层的Windows上使用 | 客户端运行在大多数的UNIX系统上, 但没有MS-Windows本地程序. 基于cygwin的系统看起来也能使用 | 非常棒. 运行在基于所有能运行python的平台.仓库是兼容性的基于CPU结构和字节序的 | 非常好. 客户端和服务器端都能在UNIX, Windows和Mac OS X上运行 |
web接口 | 是的. CVSweb, ViewVC, Chora和wwCVS | 是的. Gitweb包含在发布包中 | 是的. Web接口是内置组件 | 是的. ViewVC, SVN::Web, WebSVN, ViewSVN, mod_svn_view, Chora, Trac, SVN::RaWeb::Light, SVN Browser, Insurrection和perl_svn.另外, Subversion的apache服务也提供了一个基础的web接口 |
图形用户界面 | 非常好. 有很多图形界面可以用: WinCVS, Cervisia(对于KDE), TortoiseCVS(Windows浏览器插件) | Gitk包含在发行版中. Qqit和Git-gui工具也可使用 | 通过hgit扩展查看历史; 检入扩展(hgct)使得提交很容易. 一些第三方的IDEs和GUI工具(如eric3, meld)有一些集成的Mercurial支持 | 非常好. 有很多GUIs可用: RapidSVN(跨平台), TortoiseSVN(Windows浏览器插件), Jsvn(java), 等. 大多数都还在开发中 |
详细流程请参考以下博文,具体细节注意的已经写出。
SVN服务器搭建和使用(一)|软件下载安装
SVN服务器搭建和使用(二)|服务器搭建使用
SVN服务器搭建和使用(三)|SVN具体操作
Windows下搭建SVN服务器
Apache Subversion Binary Packages
从官网下载windows版本的Apache Subversion Binary Packages
选择VisualSVN版本服务器下载安装VisualSVN Server
TortoiseSVN
对应版本的TortoiseSVN客户端及汉化包
安装TortoiseSVN记着勾选第二个选项command line client tools,如果忘记请重新点击安装文件modify中进行重新安装。
主要用于将项目部署到服务器
鼠标右键点击check out
Eclipse安装SVN教程
MyEclipse安装SVN教程
注意网址http://subclipse.tigris.org/update_1.8.x
Eclipse中使用SVN
MyEclipse中SVN的常见的使用方法
新建资源库
新建项目
project –> team