简介

为什么要使用版本控制

  1. 协同修改
    多人并行不悖的修改服务器端的同一个文件。
  2. 数据备份
    不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
  3. 版本管理
    保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面SVN 采用的是增量式管理的方式 就是说他只会保存文件不一致的内容,而Git 采取了文件系统快照的方式(速度非常快)。
  4. 权限控制
    对团队中参与开发的人员进行权限控制例如用户组,用户之间的权限,还可以对团队外开发者贡献的代码进行审核(Git 独有)
  5. 历史记录
    查看修改人、修改时间、修改内容、日志信息,将本地文件恢复到某一个历史状态。
  6. 分支管理
    允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。
  7. 集中式版本控制工具:CVS,SVN,VSS……
  8. 分布式版本控制工具:Git,Mercurial,Bazaar,Darcs……

SVN介绍

  1. SubVersion就可以帮助我们实现上述提到的功能。
  2. SubVersion程序,和Mysql很类似,是c/s结构的,有客户端和服务器端。
  3. SVN Repository可以是自己计算机上的一个目录,或者是U盘,硬盘(不建议这样用)。当然也可以是公司的服务器。
  4. SVN有很棒的版本控管机制。所有上传的版本都会帮您记录下来。日后您可以随时取得某一个时刻的版本。而且,也有版本分支及合并等好用的功能。
  5. SVN可以让不同的开发者存取同样的档案,并且利用SVN Server作为档案同步的机制。也就是说,有档案更新时,无须将档案寄给您的开发成员。只需要告诉他新的版本已经在SVN Server上面,请他自己去SVN Server上面就可以取得最新版本。而且,SVN Server也可以做到当您上传新版本后,自动发信给相关的成员。
  6. SVN的存放档案方式是采用差异备份的方式。也就是说,他只会备份有不同的地方。所以很省硬盘空间。此外,他也可以针对所谓的非文字文件进行差异备份

在这里插入图片描述


Windows安装

下载安装包

首先来下载和搭建SVN服务器.
现在Subversion已经迁移到apache网站上了:下载地址
http://subversion.apache.org/packages.html
你可以在左侧的导航栏找到源代码,文档的下载地址。
在这里插入图片描述
点击上图Windows链接即可进入,windows操作系统下面的二进制文件包一共有5种。
个人认为最好用VisualSVN server 服务端和 TortoiseSVN客户端搭配使用,一般情况下也都这么使用
在这里插入图片描述
点开上面的VisualSVN第四行链接,下载VisualSVN server,如图:
在这里插入图片描述
然后下载TortoiseSVN客户端,官网下载地址
http://tortoisesvn.net/downloads.html
在这里插入图片描述
注意下载跟你电脑匹配的安装包,,在页面的下面你还可以找到语言包。
在这里插入图片描述


Server安装

执行下载下来的安装程序.exe文件,安装到下图这一步需要注意一点。其余的都是下一步,安装完成并启动即可。
在这里插入图片描述
Location是指VisualSVN Server的安装目录,
Repositorys是指定你的版本库目录。
Server Port指定一个端口,
Use secure connection勾山表示使用安全连接,
Use Subversion authentication 表示使用Subversion自己的用户认证。

安装完成后,启动VisualSVN Server Manager。如图:
在这里插入图片描述


Client安装,汉化

小乌龟的安装也不复杂,点击Next即可
在这里插入图片描述
接下来安装简体中文语言包,这个也非常简单,一路Next就行。语言包安装完成以后在桌面任意空白地方单击鼠标右键,会在右键菜单里找到SVN
在这里插入图片描述
在这里插入图片描述


Server端使用

创建仓库

上述介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化。这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用。首先打开VisualSVN Server Manager。可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等。要建立版本库,需要右键单击左边窗口的Repositores
在这里插入图片描述
在弹出的右键菜单中选择Create New Repository或新建->Repository
进入下一步:
在这里插入图片描述
在这里插入图片描述
输入版本库名称,勾上Create default structure复选框(推荐这么做)。点击OK,版本库就创建好了,版本库中会默认建立trunk,branches,tags三个文件夹。
在这里插入图片描述

导入项目

这时候我们将项目导入到版本库中,找到你的项目文件夹,在项目文件夹上点击鼠标右键,找到SVN菜单,选择导入,如图:
在这里插入图片描述
在弹出的对话框中填上版本库URL,这个URL可以从VisualSVN Server Manager中获取,在你的版本库上单击右键,选择Copy URL to Clipboard,这样就把版本库URL复制到你的剪贴版了

在这里插入图片描述
将复制的版本库URL粘贴上,在URL后面加上trunk子路径,然后在导入信息里面填上导入信息"导入项目到版本库"
在这里插入图片描述
点击确定,所选中的项目就会被导入到版本库中。
在这里插入图片描述


设置用户组和用户

项目导入到版本库以后,不能随便让谁都能够读写版本库,所以需要建立用户组和用户。
在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create User或者新建->User
在这里插入图片描述
在弹出的对话框中填写User name和Password,然后点击OK。
在这里插入图片描述
用相同的方式分别创建用户
Develpoer1,Develpoer2,Develpoer3,Test1,Test2,Manger六个用户,分别代表3个开发人员,两个测试人员和一个项目经理。
在这里插入图片描述
然后我们建立用户组,在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create Group或者新建->Group
在这里插入图片描述
在弹出窗口中填写Group name为Developers,然后点Add按钮,在弹出的窗口中选择三个Developer,加入到这个组,然后点Ok。
用相同的方式创建组Managers,Testers
在这里插入图片描述
在这里插入图片描述


设置权限

接下来我们给用户组设置权限,在MyRepository上单击右键,选择属性,如图:
在这里插入图片描述
在弹出的对话框中,选择Security选项卡,点击Add按钮,选中Developers,Managers,Testers三个组,然后添加进来,给Developers,Managers权限设置为Read/Write,Tester权限设置为Read Only。如图:
在这里插入图片描述
到此,服务端的工作就完成了


Client端使用

接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等。

添加文件

在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态,如图:

在这里插入图片描述
这时候,你需要告知TortoiseSVN你的操作,ADD操纵。如图:
在这里插入图片描述
加入以后,你的文件会变成这个状态,如图:
在这里插入图片描述
这时候使用TortoiseSVN进行提交。这样别人就能看到你所做的更改了,如图:
在这里插入图片描述

修改文件

使用TortoiseSVN更新,修改工作副本中的Readme.txt文件,加入"hello world!",然后保存,你会发现Readme.txt文件的图标改变了,如图:
在这里插入图片描述
这个红色的叹号代表这个文件被修改了,这时候,提交更改,其他人即可看到你的更改。

重命名文件

使用TortoiseSVN更新,重命名工作副本中的Readme.txt文件为"Readme1.txt’,然后保存,你会发现Readme.txt文件的图标改变了,如图:
在这里插入图片描述
更添加文件一个道理,这时候你需要告诉TortoiseSVN你的操作,如图:
在这里插入图片描述
加入以后,提交,这时候版本库中的Readme.txt文件将会被重命名为"Readme1.txt"。

删除文件

使用TortoiseSVN更新,使用TortoiseSVN删除工作副本中的Readme.txt文件,然后提交,版本库中的相应文件即被删除掉了,如图:
在这里插入图片描述

TortoiseSVN客户端重新设置用户名和密码

在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项,那么以后就不用每次都输入一遍用户名密码了。
不过,如果后来在服务器端修改了用户名密码,则再次检出时就会出错,而且这个客户端很弱智,出错之后不会自动跳出用户名密码输入框让人更新,最终,找到两种解决办法:

办法一:

在TortoiseSVN的设置对话框中,选择“已保存数据”,在“认证数据”那一行点击“清除”按钮,清楚保存的认证数据,再检出的时候就会重新跳出用户名密码输入框。
在这里插入图片描述

方法二:

Tortoise的用户名密码等认证信息都是缓存在客户端文件系统的这个目录:
C:/Documents and Settings/Administrator/Application Data/Subversion/auth
win7
C:\Users\liukaili\AppData\Roaming\Subversion
删除auth下面的所有文件夹,重新连接远程服务器进行检出,对话框就会出现!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐