Git/SVN 版本管理工具的对比

Mysql:修复表repair table name, 清空表truncate table name, 删除表drop table name

更改表名rename table name1 to name2, 备份表mysqldump 库名 表名 > 路径

字段分类group by name, 去重distinct , 字段排序order by desc/asc       ---- 小 Q

------------------------------------------------------------------------------------------------------

【简介】

VSS:Visual Source Safe,源于美国微软,常用版本6.0,入门级的工具易学易用;
CVS:Concurrent Version Syst,主源码管理,开源,客户界面winCVS,优于VSS;
StarTeam:源于Borland公司,属于高端工具,收费,易用功能和安全性方面都不错;
SVN:subversion,基于C/S架构,使用范围广,性能优异,取代了CVS,发展趋势弱于Git;
GIT:不仅仅是个版本控制系统,亦是内容/工作管理系统,要改变思想去接受它的新概念新特征。

基于发展趋势,以及现有的应用现状,以下仅比较 SVN和Git 两种工具。注意:工具本身并无好坏之分

         

【八大区别】

1、核心区别:SVN基于集中式,Git基于分布式

如果可以充分理解分布式系统的概念,对Git的发展就会理解一大半了。Git不是第一个或唯一一个分布式版本管理系统,还有Bitkeeper、Mercurial,但它却是功能最强大的,GitHub.com 是一个成功案例;

集中式系统,只有一个中央版本库,一旦故障,影响全部,成员工作必须依靠网络,但资源集中;

分布式系统,成员都可以是中央库,工作不需要网络。这方面我觉得Git的优势更大。

比如:Git可以在offline状态下查看所有log,而SVN不可以。

(以下区别比较难以直观理解,只有再用到时,才能有深刻的体会)

2、快照区别:Git没有全局版本号,而SVN有

版本号其实就相当于对应时间的源码快照,可用于回退操作。但Git可以利用SHA-1的唯一来标示一个代码快照,却也远比不过SVN简单易懂的版本号,这是SVN的一个重大突破,要远优于Git。

3、存储区别:SVN按文件存储,Git按元数据方式存储

所有资源控制系统都是把文件的元信息隐藏在一个 .svn、.cvs、.git等目录里,而.git体积与其他差距很大,因为.git目录下拥有中心版本库的一切东西,标签、分支、记录等。

4、分支区别:SVN和Git的分支管理不同

分支在版本管理中是特别重要的存在。SVN的分支就是版本库中的另一个目录,如果想知道是否合并了一个分支,需手工运行svn propget svn:mergeinfo来确认,而且必须要先update才能commint,也经常会有遗漏分支的情况;而Git可以在同一个目录下的几个分支之间来回切换,很容易发现未被合并的,而且合并操作也很简单。

5、内容区别:Git的完整性要优于SVN

GIT的内容存储使用的SHA-1哈希算法,确保了代码内容的完整性,在遇到磁盘故障和网络问题时降低对版本库的破坏。

6、时效区别:Git的提交速度要优于SVN

克隆5个分支,SVN要同时复制5个版本文件,但Git只获取5个版本元信息,然后载入主要分支;有实验者说,克隆一个有10000个提交(commint),5个分支,每个分支约1500个文件,SVN用了将近一小时,而Git只用了1分钟。

7、系统区别:以下是关于集中式与分布式区别举例

a、分支在SVN是一个完整目录,并拥有完整的实际文件,如果成员要新建分支,将会影响“全世界”,每个人都会有同样的分支,如果分支用来做破坏(安检测试),那所有人就得重切分支重新下载。但是Git成员可以随时在自己电脑上开分支做安检测试,只要不合并提交到主版本库,就不会影响其他人;

b、如果svn中央版本库所在的机器出了问题,或网络出了问题,大家就都没办法工作了;但Git没事;

c、SVN在提交作品时,将直接记录到中央版本库,当发现bug后,已经无法阻止了;但Git的提交只是提交到了本地,除非推(push===sync)到主要版本库。

看似种种都是倾向于Git,但SVN的劣势其实不是在反向增强开发人员们的安全和不依赖工具的意识吗?

 8、应用区别:SVN适于项目管理,Git适于代码版本管理

SVN支持中文,操作简单,界面统一,功能完善,美工、产品、测试、开发、设计都可以轻松上手;

Git 空间占用率低,易于代码分支管理,但图形界面支持较差,不支持中文,使用难度较大不易上手;

一个研发队伍正常包括:需求分析、设计、美工、程序员、测试、实施、运维,每个成员在工作中都有产出物,  包括了文档、设计代码、程序代码,这些都需要按项目集中进行管理的。SVN能清楚的按目录进行分类管理, 使项目组的管理处于有序高效的状态。

-----------------------------------------------------------------------------------------------------
客户端:https://tortoisesvn.net/

官方手册:http://svnbook.red-bean.com   
SVN中文社区:http://www.iusesvn.com

SVN相关站点:http://subversion.tigris.org/   
中文常见问题解答:http://subversion.apache.org/faq.zh.html 
GIT内容完整性的讨论:http://stackoverflow.com/questions/964331/git-file-integrity

【重构和革新才是互联网永恒的话题】

时间: 2024-10-08 18:00:21

Git/SVN 版本管理工具的对比的相关文章

svn版本管理工具的安装及使用

一.实验环境VMware 10.RedHat5.6 1.服务器端:Redhat 5.6 subversion                             i386                      1.6.11-7.el5               subversion-devel                       i386                      1.6.11-7.el5               subversion-javahl     

Ubuntu下快速安装及使用SVN版本管理工具

1.介绍 Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以很方面恢复到以前的版本,并可以查看数据更改细节.目前,Subversion已成为主流的开源代码版本管理软件之一,简称SVN. 2.SVN相关命令了解 svn:命令行客户端 svnadmin:用来创建.调整或修复版本库的工具 svnserve:svn服务程序 svndumpfilter:过滤svn版本库转储数据流的工具 svnsync:svn数

Git分布式版本管理工具基本使用方法

一.Git简介 早先linux内核代码托管在BitKeeper,这个是商业的,但是免费给linux社区使用: linux社区有个人试图破解BitKeeper,被BitKeeper发现后不再免费提供使用权,于是linus花两周时间开发了一个分布式的版本控制系统,就是Git: 其实Git功能和svn是类似的,但svn是集中管理,Git是分布式管理: 集中管理:必须要有一台服务端,代码仓库是在服务端上,客户端(个人电脑)需要从服务器上同步代码到自己电脑上,开发完要推送到服务端,这种架构依赖网络,传输也

Centos 配置svn 版本管理工具

主要包括: 1  安装svn 2  创建仓库 3 配置权限 4 配置防火墙iptables 5 windows 和服务器同步脚本 最容易出错的还是配置权限和防火墙,注意这里就好了 1 安装svn 2 创建仓库 3 修改上面的配置文件 4 修改防火墙 5 下面就是完整的示例: 在windows 上进行checkout 找个目录进行check,一定要先check额

SVN版本管理工具使用手册

百度搜索:小强测试品牌 交流群:522720170 svn是啥 目前TortoiseSVN是最为常用的版本控制软件之一.大家理解为svn就类似一个文件库,这里面可以存放各种文件,只不过他可以给这些文件打上标签,并且可以记录每一次的变动,这样你就可以获取最新的.回滚到之前的文件了. svn的安装 下载地址:https://tortoisesvn.net/downloads.zh.html 安装非常简单,基本是傻瓜式安装.但务必记得安装完成后一定要重启电脑啊. 安装完成后,按下鼠标右键,如果看到类似

SVN版本管理工具使用中常见的代码提交冲突问题的解决方法

相信刚开始学习使用SVN的小伙伴在项目合作开发的过程中一定经常遇到一些影响到自己编写的代码的苦恼,我这里列举了几种常见的问题以及问题的解决方法: 1.误删除和误操作的问题 问题1:有A和B两个人一块合作写项目的时候,B在写代码的时候不小心更改了A写的代码文件的内容提交到了仓库,A该如何找回自己原来的代码呢? 解决方法: 右键点击被修改的文件---->点击TortoiseSVN选项----->点击Show log选项,会出现如图所示的窗口, 然后右键点击A的记录--->点击Revert t

SVN版本管理工具的使用

一.svn下载 https://tortoisesvn.net/downloads.html 下载网站 http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html 学习网站 二.使用步骤 1.安装VisualSVN-Server (管理员安装服务器端) 2.普通开发人员安装客户端SVN 安装后,在任一文件夹右键都会出现 "tortoiseSVN",如果没有,则重启电脑 3.启动 VisualSVN manager

git svn简明使用教程

????虽然使用git的好处多多,不过由于一些历史原因我们在工作时可能还得使用SVN,那么有没有一种方法可以兼顾理想与现实呢? ????git给我们提供了git svn命令工具,可以用使用git的方法来管理SVN代码.闲话不多说,正式开始我们的git svn使用教程. 创建仓库: 1.只拉取单一目录: git svn clone http://xx.xx.xx.xx/trunks/demo 2.拉取服务器上全部数据: git svn clone http://xx.xx.xx.xx/demo -

企业SVN版本管理与代码上线方案

1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Svn版本管理工具管理着随时间改变的各种数据.这些数据放置在一个中央资料档案库(repository)中,这个档案库很像一个普通的文件服务器或者FTP服务器,但是,与其他服务器不同的是,SVN会备份并记录每个文件每一次的修改更新变动.这样我们就可以把任意一个时间点的档案恢复到想要的某一个旧的版本,当然也