SVN项目管理工具介绍

一、 版本管理工具

1.1 SVN概述

1.1.1 多人合作开发可能出现的问题

通常软件开发由多人协作开发,如果不对代码文件、配置文件、文档等进行有效管理,将会出现一些问题:

  • 代码管理混乱
  • 备份多个版本,占用磁盘空间大
  • 解决代码冲突困难
  • 容易引发BUG
  • 难于追溯问题代码的修改人和修改时间
  • 难于恢复至以前正确版本
  • 无法进行权限控制
  • 项目版本发布困难

1.1.2 什么是版本控制

版本控制(Revision control):它是维护工程蓝图的标准做法,能追踪工程蓝图从诞生到定案的过程,是一种记录多个文件内容变化,以便将来查阅特定版本修订情况的系统。

  • 常见的版本管理软件:
    VSS:Visual Source Safe(Microsoft Visual Studio成员)主要任务是负责项目文件的管理
    CVS:march-hare出品的一套用于进行文件版本控制软件。
    SVN:它是从CVS基础上发展起来的一套用于进行文件版本控制软件。它可以用于管理整个软件生命周期所产生的文件,并且对它们进行版本控制。
    Git:是一个开源的分布式版本控制系统。可以有效、高速的处理从很小到非常大的项目版本管理。

1.2 SVN的工作方式

SVN分为客户端和服务端。在服务器端其实就是一个文件仓库,它保存了所有需要版本控制的文件。当我们把文件提交到服务器上的时候,SVN就会为该文件创建一个版本号。如果要获取服务器的文件,可以通过版本号来获取。

  • SVN的工作方式分为两种:

1) 复制-修改-合并模式:
SVN的默认工作方式。在这种模式下,SVN会为每一个用户建立一个私有库。多个用户可以并行工作。当用户把文件提交给SVN服务器的时候,SVN就会把各个用户的私有库的文件复制并合并在一起,成为最终的版本。

2) 锁定-修改-解锁模式:
在这种模式中,一个时间段里只允许有一个用户操作SVN仓库中的文件。因此,该模式不适合软件开发这种工作。

1.3 安装服务

下载地址:https://www.visualsvn.com/downloads/。
在这里插入图片描述
这是第三方开发出来的一款免费的SVN图形化管理工具。适用于普通软件开发人员。

1.3.3 安装步骤

第一步:双击运行安装包,然后下一步;

在这里插入图片描述
第二步:选择默认配置,再点击下一步;
在这里插入图片描述

第三步:选择标准版本模式;
在这里插入图片描述

然后根据需要修改SVN仓库位置,然后再下一步。
在这里插入图片描述

最后,点击安装即可。
在这里插入图片描述

安装成功后,启动服务端。界面如下图所示:
在这里插入图片描述

1.4 创建仓库

第一步:鼠标右键点击Repositories菜单;
在这里插入图片描述

第二步:选择文件存储方式,使用默认即可;
在这里插入图片描述

第三步:输入仓库名称,然后点击下一步;
在这里插入图片描述

第四步:选择创建一个空的仓库;
在这里插入图片描述

第五步:选择用户访问仓库的权限,然后点击create;
在这里插入图片描述

如果创建成功,那么就会显示仓库信息。
在这里插入图片描述

1.5 创建工程目录

工程目录就是存储仓库文件的地方。

  • 创建工程目录的步骤:

第一步:鼠标右键点击刚创建的仓库;
在这里插入图片描述

第二步:输入工程目录名称,然后点击Ok;
在这里插入图片描述

创建成功后的目录结构如下所示。
在这里插入图片描述
branches:该目录保存一些阶段性发布的文件,这些文件可以继续进行开发和维护;
tags:这里存储阶段性发布的版本,这些版本可以作为里程碑进行存档。所以,该目录一般设置为只读;
trunk:一般保存日常开发过程中产生的文件;

1.6 用户和权限

1.6.1 创建用户

鼠标右键User目录,然后点击Create User。
在这里插入图片描述

输入用户名和密码,然后点击Ok即可。
在这里插入图片描述

创建成功后,在主界面可以看到刚刚创建的用户。
在这里插入图片描述

1.6.2 创建用户组

作用:如果对用户组进行授权,那么该用户组下的所有用户都会具有相同的权限。

  • 创建步骤:

第一步:鼠标右键Groups,然后点击Create Group。
在这里插入图片描述

第二步:输入分组名字,然后再添加组用户;
在这里插入图片描述

1.6.3 授权

1.6.3.1 删除权限

第一步:进入权限分配界面;
在这里插入图片描述

第二步:选中要删除的用户或用户组,然后点击Remove。
在这里插入图片描述

1.6.3.2 授予权限

第一步:选择要授权的目录,然后鼠标右键选择Properties,进入权限分配界面:
在这里插入图片描述

第二步:在权限分配界面中点击Add按钮,然后选择用户或用户组;
在这里插入图片描述

第三步:选择权限类型,并点击确定即可;
在这里插入图片描述
权限类型说明:

  • Inherit from parent:与父目录的权限相同;
  • No Access:不可访问权限;
  • Read Only:只读权限;
  • Read / Writer:读写权限;

1.7 TortoiseSVN客户端

作用:通过网络访问SVN服务端,例如:提交文件、查询仓库文件等。

  • 常见的SVN服务端:

1)使用Subversion提供的客户端命令;
2)使用图形化界面操作;(推荐)
3)使用Eclipse等开发工具插件操作;(推荐)

1.7.1 下载和安装

TortoiseSVN是Subversion版本控制系统的图形化管理工具。它具有免费、开源、操作简单等特点,在企业中非常受欢迎。

下载地址:http://tortoisesvn.net/downloads.html。
在这里插入图片描述

下载完成后,直接安装即可。

首先,双击运行:
在这里插入图片描述
首界面:
在这里插入图片描述
点击【next】
在这里插入图片描述
点击【next】
在这里插入图片描述
选择好路径后,点击【next】
在这里插入图片描述
点击【install】安装
在这里插入图片描述
点击【finish】完成安装。安装完成后重启计算机。

1.7.2 客户端访问SVN服务器

双击运行:
在这里插入图片描述

对应的exe文件是:
在这里插入图片描述

安装成功后,在windows桌面上鼠标右键,这时候就会多了一个TortoiseSVN选项。

1.7.2 常见操作

1.7.2.1 查看仓库

第一步:在桌面上鼠标右键点击TortoiseSVN -> Repo-browser。
在这里插入图片描述

第二步:输入仓库目录的地址,然后点击Ok;
在这里插入图片描述

第三步:输入登录的用户名和密码。如果登录成功,这时候就可以看到该目录中的内容。

1.7.2.2 导入导出

Export:把SVN仓库中的指定目录导出到本地磁盘上。
在这里插入图片描述

Import:把指定目录下的文件或子目录导入到SVN仓库中。
在这里插入图片描述

1.7.2.3 检出仓库

Checkout:把SVN仓库中的指定目录导出到本地磁盘上。但是与Export不一样的是,checkout检出后文件,含有.svn隐藏文件夹, 会和SVN仓库交互。而Export导出,没有.svn隐藏文件夹。
在这里插入图片描述
注意:不能够删除.svn隐藏文件,否则无法版本控制。

  • 检出步骤:

第一步:新建一个文件夹,然后鼠标右键,点击SVN Checkout…。
在这里插入图片描述

第二步:输入Checkout的基本信息。例如:仓库的URL、检出目录等等。然后点击Ok。

在这里插入图片描述
例如:检查仓库中的aa目录后,在磁盘上可以看到如下目录:
在这里插入图片描述
.svn是版本控制文件夹。该文件夹不能够被删除。
bb:带绿色勾子的文件或文件夹代表已经在SVN版本控制之内。

如果检出成功后没有看到绿色勾子,那么可以按照下面的步骤设置:
首先,鼠标右键选择TortoiseSVN -> Settings。
在这里插入图片描述

接着,选择Icon Overlays -> Shell,然后点击确定。重启电脑即可。
在这里插入图片描述

1.7.2.4 添加

在checkout目录下,如果使用Add命令添加一个文件或文件夹,那么该文件或文件夹就会被标注为受SVN控制,但未上传到服务器上。一般后面还会跟一个Commit操作。
在这里插入图片描述
如果一个文件受版本控制,但是还没有被上传到SVN服务器上。那么该文件的图标就会变成加号。
在这里插入图片描述

如果不想让某个文件或文件夹不受SVN版本控制,那么可以把它们添加到ignore list中。
在这里插入图片描述

添加到ignore list中的文件或文件夹的图标会变成灰色。
在这里插入图片描述

1.7.2.5 提交

作用:把本地的文件提交给SVN服务器。

如果文件或文件夹的图标变成红色的感叹号,那么就代表该文件或文件夹已经被修改。
在这里插入图片描述

所以,点击鼠标右键,然后选择Commit提交文件到服务器上。
在这里插入图片描述

选择要提交的文件,然后点击Ok即可。

如果提交成功,那么就会显示如下信息:
在这里插入图片描述

而且,提交成功后的文件或文件夹的图标会变成绿色。
在这里插入图片描述

注意:在实际开发中,为了避免由于多人开发时候所造成的版本覆盖问题。所以,在修改一个文件之前,都需要先更新文件或文件夹,然后再进行修改。而且,修改后要及时提交到SVN服务器上。

1.72.6 更新

作用:更新仓库文件到本地。

可以checkout文件夹中鼠标右键,点击Update。也可以选中指定文件,然后鼠标右键点击Update更新到最新版本。
在这里插入图片描述

如果更新成功,会显示如下界面:

如果想更新到指定版本,可以鼠标右键文件或文件夹,然后选择Update to revision。
在这里插入图片描述

选择要更新的版本,然后点击Ok即可。
在这里插入图片描述
注意:如果SVN服务器的文件版本与本地文件版本不相同,那么提交本地文件的时候就会发生冲突。
在这里插入图片描述
解决冲突的办法:
1) 把冲突的文件删除;
2) 重新手动更新服务器上的文件;
3) 再重新修改并提交文件;

1.7.2.7 删除

选择文件或文件夹,鼠标右键点击Delete。
在这里插入图片描述

Delete命令只会标注该文件或文件夹从版本库中删除,标注删除后需要执行提交操作。

1.7.2.8 恢复

在checkout目录中的操作会记录日志,提交前可以进行恢复。

 操作步骤:
在checkout目录下鼠标右键,选择TortoiseSVN -> Revert。
在这里插入图片描述

然后选择要恢复的文件,点击Ok即可。

在这里插入图片描述

1.7.2.9 版本冲突

如果两个客户端同时修改同一个文件时候,就有可能出现冲突情况。

123.txt 将本地和服务器合并到一起的文件;(不要直接看)
123.txt.mine 我本地自己修改后的文件;
123.txt.r31 我修改之前的文件;
123.txt.r32 别人修改后的文件;

 解决冲突的办法:
首先,鼠标右键点击冲突文件,然后选择TortoiseSVN -> Edit conflicts。
在这里插入图片描述

然后在Merge中输入新的内容,然后点击Save保存即可。
在这里插入图片描述

点击Mark as resolved按钮,标注已经解决冲突。

在这里插入图片描述
最后重新提交该文件即可。

1.8 Eclipse插件

1.8.1 下载和安装

SVN插件下载地址:http://www.eclipse.org/subversive/previous-releases.php。

下载完成后,按照以下步骤进行安装:
第一步:进入STS安装界面;
在这里插入图片描述

第二步:添加插件压缩包,然后选择需要安装的插件,点击下一步;
在这里插入图片描述

第三步:接受协议后点击Finish开始安装。
在这里插入图片描述

正在安装界面:
在这里插入图片描述
安装完成后重启Eclipse工具即可。如果安装成功,在show view界面中就会看到SVN的选项。
在这里插入图片描述

1.8.2 安装JavaHL

第一步:下载SlikSVN;
官方下载地址:https://sliksvn.com/download/

第二步:解压缩后安装。安装成功后,重启Eclipse。
第三步:进入window > Preference > Team > SVN的SVN Connector的Tab页,点击Get Connectors…按钮,选择JavaHL。
在这里插入图片描述
勾选SVN Kit 1.8.14 和 Native JavaHL 1.9.3,然后点击Finish,最后再点击下一步直到安装完成为止。

第四步:安装完成后,重新进入window > Preference > Team > SVN的SVN Connector的Tab页,在SVN Connector选项选择JavaHL 1.9.3即可。

1.8.3 使用SVN插件

1.8.3.1 共享项目

第一步:鼠标右键点击项目名,然后选择Team -> Share Project;
在这里插入图片描述

第二步:选择SVN,点击Next。
在这里插入图片描述

第三步:输入SVN资源库的URL、用户名、密码等信息。
在这里插入图片描述

第四步:勾选要提交的文件,然后点击Ok。
在这里插入图片描述

项目共享成功后,项目的结构如下图所示:
在这里插入图片描述
每一个文件或文件夹后面都会有一个版本号的数字。

1.8.3.2 检出项目

第一步:选择菜单File -> New -> SVN,然后点击“下一步”。
在这里插入图片描述

第二步:选择要检出项目的URL地址;
在这里插入图片描述

第三步:输入项目在仓库中的URL、用户名、密码后,然后点击Next。
在这里插入图片描述

第四步:选择要检出哪个版本,Head Revision代表最新版本,然后点击Finish即可。
在这里插入图片描述
每次先更新项目的文件,再修改文件,最后提交文件。

发布了111 篇原创文章 · 获赞 41 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/zhongliwen1981/article/details/98134670