目录
一、概述
1.概念:
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
2.应用场景
- 协同开发
- 远程开发
- 版本回退
3.为什么要用SVN
几乎是每个稍微大一点的项目都需要对个人进行协同开发,整个开发过程会对项目进行很多次的变更,如果每个开发人员分不好工在修改或其他操作时就导致程序混乱,数据丢失等情况。所以SVN可以在开发项目前搭建好环境,部署好系统的框架,由项目组长给组员分工,在开发过程自己负责自己的模块,而且SVN可以记录每次修改的情况,当开发的新版本不适应的时候可以返回到之前的某个旧版本,有后悔药可吃。
二、应用
项目经理任务
由项目经理或者负责人搭建好服务器,
组员和项目经理共同任务
三、SVN的作用
1.实现项目组中的资源共享
2.实现资源文件的版本控制
四、SVN的工作原理
在Subuersion管理下,文件和目录可以超越时空,Subersion将文件中心版本库里,整个版本库很像一个普通的服务器,不同的是,他可以记录每一次文件和目录修改的情况,这样可以借此将数据恢复的以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
五、操作
操作流程
常见的操作如下:
- checkout(检出)项目
- 增加文件或目录 — add(增加),commit(提交)
- 修改文件或目录 — commit(提交)
- 删除文件或目录 — commit(提交)
- 更新文件或目录 — update(更新)
其中,checkout只进行一次,以后使用update更新即可。update、commit、add操作根据需要会经常使用。
简单来说可以这样理解:
- 项目中增加了文件或目录,需要先通知服务器要增加,所以首先要 add
- 然后如果要让服务器知道这些变动,就 commit,具体参加下面的命令
- 如果要从服务器获取最新的代码,就 update
首先checkout出$appname的svn仓库。
$ svn checkout https://svn.sinacloud.com/$appname
进入代码目录,创建一个新的子目录 1 作为版本1的代码目录。
$ mkdir 1
进入版本1的代码目录,编辑代码并版本1的代码部署到线上。
$ svn add .
$ svn commit -m "make it better"
六、SVN与GIT的区别
SVN是集中式版本控制系统
SVN版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也必须提交到这个中央版本库。
优点:
对于某些项目的核心代码或者是一些重要的保密性要求较高的项目,svn比git更适合。
- svn支持空目录
- svn有更好的windows平台支持
- svn可以check out/clone一个子树(sub-tree)
- svn支持特权访问控制svn lock,在处理很难合并的文件时非常有用
- svn支持二进制文件,更容易处理大文件(不需要把老版本拷来拷去)
- 学习简单、使用简单
- 操作简单,入门容易,速度快,安全性高,支持跨平台操作(window,linux,MacOS),支持版本回退功能
缺点:
- 无网的情况下:无法提交代码,无法查看代码的历史版本、无法同步代码
- 代码要定期做备份(所有的代码数据及版本变更记录)
- 分支切换缓慢
- 由于每次提交都会保留一个原始副本,因此SVN的数据库容量会暴增。尤其是在开发人员非常多的情况下。
后序:
有人说SVN是CVS的继承人,也有人说不是,以后学习的时候慢慢体会,也欢迎大家留下你们看法。