tortoisesvn更新单个文件 svn更新指定文件_git


1.1什么是SVN(Subversion)

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

官方解释:为什么会有SVN这样一个项目?为了接管CVS的用户基础,确切的说,我们写了一个新的版本控制系统,它和CVS很相似,但是它修正了以前CVS所没有解决的许多问题。具体查看SVN官方首页。

SVN是一个非常通用的软件系统,它常被用来管理程序源码,但是它也可以管理任何类型的文件,如文本、视频、图片等等。

1.2.SVN与Git的区别

1.2.1SVN集中式版本控制系统


tortoisesvn更新单个文件 svn更新指定文件_svn更新到指定版本_02


SVN版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也都必须提交到这个中央版本库。

SVN版本控制系统工作流程如下:

1.在中央库上创建或从主干复制一个分分支。

2.从中央库check out下这个分支的代码。

3.增加自己的代码文件,修改现存的代码或者删除代码文件。

4.commit代码,假设有人在刚刚的分支上提交了代码,你就会被提示代码过期,需要先up你的代码后再提交。up代码的时候如果出现冲突,需要解决好后再进行提交。

1.2.2.Git分布式版本控制系统


tortoisesvn更新单个文件 svn更新指定文件_tortoisesvn更新单个文件_03


git中没有了中央版本库的说法,但是为了开发小组的代码共享,我们通常还是会搭建一个远程git仓库。

但是和svn不同的是,开发者本地也包含了一个完整的git仓库,从某种程度上说本地的仓库和远程的仓库在身份上是等价的,没有主从之分。

如果是闭源项目,或者你习惯于以往的集中式的管理模式的话,那么在git下你也可以像SVN那样的工作,只是流程中可能会增加一些步骤。

1.你本地创建一个git库,并将其add到远程git库中。

2.你在本地添加或者删除文件,然后commit,当然commit操作都是提交到本地的git库中。(其实提交到git目录下的objects目录中)

3.将本地git库的分支push到远程git库的分支,如果这个时候远程git库中已经有别人push过,那么远程git库将不允许你push,这时候你需要先pull,如果有冲突,先处理好冲突,commit到本地git库后,再push到远程git库。

从上面的描述我们可以看到,我们每个开发人员的本地都会有一个git库,我们可以随时进行commit而不需要联网,可以随时查看历史版本,当某一个功能点开发完了之后我们可以将commit后的内容push到远程git库了,如果远程git库的版本在你上次clone或者pull之后变化了,那么需要进行pull并处理冲突,提交之后,在push到远程git库。

总结:

  • SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别。 SVN只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
  • Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。

1.3.SVN企业应用场景

SVN任是当前企业的主流。git正在发展,未来会成为主流。如果大家精力足够,建议同时掌握。

1.4.运维人员掌握版本管理

对于版本管理系统,运维人员需要掌握的技术点:

1、安装、部署、维护、排障。

2、简单使用,很多公司都是由开发来管理,包括建立仓库和添加删除账号。

3、对于版本控制系统,运维人员相当于开发商,开发人员是业主,运维搭建的系统为开发人员服务。

1.5.SVN服务运行模式与访问方式

Svn服务端运行方式

SVN服务常见的运行访问方式有3种:

1、独立服务器访问

访问地址如:svn://http://svn.yichen.com/www;

2、借助Apache等http服务

访问地址如:http://svn.yichen.com/www;

单独安装Apache+svn

CSVN(apache+svn)是一个单独的整合软件,带web界面管理的SVN软件。

3、本地直接访问(例如:file:///application/svndata/www)

1.6.Svn客户端访问方式

Svn客户端可以通过多种访问方式访问服务器端,例如:本地磁盘访问,或各种各样不同的网络协议访问,但一个版本库地址永远都是一个URL,URL反映了访问方法。

1.7.SVN档案库数据格式

SVN存储版本数据有2中方式:BDB(一种事物安全性表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

BDB:

伯克利DB(BerkeleyDB),版本库可以使用的一种经过充分测试的后台数据库实现,不能在通过网络共享的文件系统上使用,伯克利DB是Subversion1.2版本以前的缺省版本库格式。

FSFS:

一个专用于Subversion版本库的文件系统后端,可以使用网络文件系统(例如NFS或SMBFS)。是1.2版本及其后的缺省版本库格式。

1.8.SVN版本控制系统优点

1、管理方便,逻辑清晰明确,符合一般人思维习惯。

2、易于管理,集中式svn服务器更能保证数据安全性。

3、代码一致性非常高。

4、适合开发人数不多的项目开发。

5、普及度高,大部分软件配置管理的大学教材都是SVN。