[TOC]
版本控制介绍
版本控制——总结
里边有关于文字性质定义
常用版本控制技术
vss(Visual SourceSafe)
作为Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。
仅适用于团队开发,不适用于企业级开发。
cvs(Concurrent Versions System)
一个典型的服务器/客户端软件,有Unix版本的CVS 、Linux版本的CVS和Windows版本的CVS。
功能相对单一,适用于几人的小团队。
代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工作。
svn(Subversion)
是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。
git
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服务器搭建和使用(三)|SVN具体操作
Windows下搭建SVN服务器
搭建SVN服务器
Apache Subversion Binary Packages
从官网下载windows版本的Apache Subversion Binary Packages
选择VisualSVN版本服务器下载安装VisualSVN Server
TortoiseSVN客户端搭建
TortoiseSVN
对应版本的TortoiseSVN客户端及汉化包
win7右键无法出现SVN选项
安装TortoiseSVN记着勾选第二个选项command line client tools,如果忘记请重新点击安装文件modify中进行重新安装。
导出到服务器
主要用于将项目部署到服务器
客户端检出文件
鼠标右键点击check out
检出完成后无法显示svn文件夹图标
Eclipse集成SVN
Eclipse安装SVN教程
MyEclipse安装SVN教程
注意网址http://subclipse.tigris.org/update_1.8.x
Eclipse下使用svn
Eclipse中使用SVN
MyEclipse中SVN的常见的使用方法
新建资源库
新建项目
project —> team