SVN: subversion,是一个开源的版本控制系统。

SVN把文件存储在中心仓库中,这个中心仓库就像文件系统一样,不同的是,它可以记录每次修改的情况,借助于此就能够非常清楚的知道文件的变更情况。

SVN之前的CVS(已经过时),Git(Android开发流行之后才慢慢流行的)。

版本的概念由何而来?

A提交了一次代码,给一个版本号1

B提交了一次代码,给一个版本号2

….

每提交一次代码版本号+1,这样每次提交的文件都会有一个版本号对应,便于管理,通过版本号来控制就叫做版本控制软件。

提交文件内容的同时,把文件的元数据(描述数据的数据)比如,文件的修改日期、修改人、修改原因(备注或者注释)等,有了这些元数据信息,我们才能够更好的去恢复版本,追责等。

乌龟小土豆_小乌龟svn_乌龟小练笔

SVN和版本控制软件SVN和版本控制软件的关系好比Mysql和数据库软件的关系,SVN只是版本控制软件的一种,还有其他的。git

SVN基本情况

SVN服务端软件:VisualSVN

SVN客户端软件:TortoiseSVN(外号:小乌龟

SVN: subversion,是一个开源的版本控制系统。

SVN把文件存储在中心仓库中,这个中心仓库就像文件系统一样,不同的是,它可以记录每次修改的情况,借助于此就能够非常清楚的知道文件的变更情况。

SVN之前的CVS(已经过时),Git(Android开发流行之后才慢慢流行的)。

来张图帮你更好的理解SVN的工作套路!

乌龟小土豆_小乌龟svn_乌龟小练笔

开始上安装教程

SVN服务器端软件在实际企业环境下往往会安装在linux下,我们学习使用安装在Windows下。

VisualSVN安装及创建仓库

双击安装文件(根据实际情况选择32bit/64bit)

安装服务端软件+管理工具+命令行客户端模式

小乌龟svn_乌龟小练笔_乌龟小土豆

小乌龟svn_乌龟小土豆_乌龟小练笔

小乌龟svn_乌龟小土豆_乌龟小练笔

乌龟小练笔_乌龟小土豆_小乌龟svn

在服务管理中查看“VisualSVN Server”服务是开启状态

VisualSVN创建工程目录

VisualSVN创建项目工程目录(一般一个项目会创建一个工程目录,方便授权,不同项目组的人有不同项目目录的访问权限)

乌龟小练笔_乌龟小土豆_小乌龟svn

乌龟小练笔_小乌龟svn_乌龟小土豆

小乌龟svn_乌龟小土豆_乌龟小练笔

乌龟小练笔_小乌龟svn_乌龟小土豆

乌龟小土豆_乌龟小练笔_小乌龟svn

小乌龟svn_乌龟小练笔_乌龟小土豆

VisualSVN创建用户

乌龟小土豆_小乌龟svn_乌龟小练笔

乌龟小练笔_乌龟小土豆_小乌龟svn

注意:用户名和密码是大小写敏感的

乌龟小练笔_小乌龟svn_乌龟小土豆

VisualSVN创建用户组

创建用户组是为了便于授权,比如一个项目中,某几个人是测试人员,某几个人是开发人员,那么开发人员的权限是读写,测试人员权限可能只是读没有写权限。

乌龟小土豆_小乌龟svn_乌龟小练笔

小乌龟svn_乌龟小土豆_乌龟小练笔

乌龟小土豆_小乌龟svn_乌龟小练笔

乌龟小练笔_乌龟小土豆_小乌龟svn

VisualSVN分配权限

分配权限可以按照用户分配,也可以按照用户组分配。

乌龟小练笔_小乌龟svn_乌龟小土豆

小乌龟svn_乌龟小土豆_乌龟小练笔

TortoiseSVN安装与使用

安装路径中不要出现中文和空格。

小乌龟svn_乌龟小土豆_乌龟小练笔

注意:安装之后重启电脑。

验证TortoiseSVN安装是否成功

在任意目录下右键,右键菜单出现如下选项即为安装成功

乌龟小土豆_小乌龟svn_乌龟小练笔

TortoiseSVN常用操作

实际企业环境下,我们往往不能直接操作服务器端,只能通过客户端操作。

svn图标

乌龟小土豆_小乌龟svn_乌龟小练笔

浏览仓库

乌龟小练笔_乌龟小土豆_小乌龟svn

清理客户端用户名/密码缓存

乌龟小土豆_小乌龟svn_乌龟小练笔

小乌龟svn_乌龟小土豆_乌龟小练笔

检出Checkout

乌龟小练笔_乌龟小土豆_小乌龟svn

检出之后有一个隐藏文件夹,本地文件夹和远程文件夹维护关系的元数据

添加Add

在目录下新建一个HelloWorld.java,这样的图标代表该文件尚未交给SVN管理

乌龟小练笔_小乌龟svn_乌龟小土豆

Add之后,这样的图标代表已经和SVN建立联系,但尚未提交。

提交Commit

乌龟小练笔_小乌龟svn_乌龟小土豆

小乌龟svn_乌龟小土豆_乌龟小练笔

乌龟小土豆_乌龟小练笔_小乌龟svn

注意:这里的版本号和软件开发的给软件定义的版本号不是一个意思。

更新Update

将SVN服务器上的最新内容更新到本地

小乌龟svn_乌龟小土豆_乌龟小练笔

更新到历史某一版本

查看提交日志

乌龟小练笔_乌龟小土豆_小乌龟svn

更新到历史某一版本

乌龟小土豆_小乌龟svn_乌龟小练笔

也可以通过另外一种方式来更新

乌龟小练笔_小乌龟svn_乌龟小土豆

乌龟小练笔_小乌龟svn_乌龟小土豆

删除Delete

我们把本地文件删除,必须要提交,才能真正从服务器上删除

乌龟小练笔_乌龟小土豆_小乌龟svn

这样删除如果没有提交,还是可以恢复的

小乌龟svn_乌龟小练笔_乌龟小土豆

因此,要提交删除操作,在被删除文件所在的文件夹内右键执行提交

乌龟小练笔_乌龟小土豆_小乌龟svn

导入导出

导入

乌龟小练笔_小乌龟svn_乌龟小土豆

导出

小乌龟svn_乌龟小练笔_乌龟小土豆

检出(内容+svn关系)

导出(仅内容)

冲突问题与解决

多个用户同时操作同一个文件时,就可能产生冲突情况。

乌龟小练笔_小乌龟svn_乌龟小土豆

冲突产生后,可以手动Merge,解决冲突后,重新commit

HelloWord.java:服务器上文件和本地文件的合并

HelloWord.java.mine:本地修改后的文件

HelloWord.java.r6:修改前的文件

HelloWord.java.r7:对方修改后的文件

小乌龟svn_乌龟小练笔_乌龟小土豆

避免冲突注意:

写东西之前再更新

勤更新勤提交

别对同一个文件进行操作(所以拆分)类似于@Import注解

为什么分布式开发,为什么配置文件分那么细啊是吧,避免冲突的几种方式

分布式可以避免冲突

安装包获取方法:

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: yjxmw518