【项目管理工具】SVN

1. svn介绍

1.1 项目管理中的版本控制问题

  • 解决代码冲突困难
  • 容易引发bug
  • 难于恢复至以前正确版本
  • 无法进行权限控制
  • 项目版本发布困难

1.2 什么是版本控制

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

1.3 svn是什么

SVN是版本管理工具,在当前的开源项目里(J2EE),几乎都会使用SVN。Subversion项目的初衷是为了替换当年开源社区最为流行的版本控制软件cvs,在cvs的功能的基础上有很多的提升同时也能较好的解决CVS系统的一些不足。

1.4 svn的使用方法

svn是基于客户/服务器模式:

【项目管理工具】SVN_第1张图片

svn的两种模式:

(1)复制-修改-合并(SVN默认的模式)

在这种模型里,每个客户读取项目配置库建立一个私有工作副本--版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误.

(2)锁定-修改-解锁

在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。此模式不适合软件开发这种工作。

1.5 SVN的工作方式

【项目管理工具】SVN_第2张图片

2. svn服务端安装配置

1. 下载地址:https://www.visualsvn.com/downloads/

【项目管理工具】SVN_第3张图片

2. 安装服务端

【项目管理工具】SVN_第4张图片

【项目管理工具】SVN_第5张图片

【项目管理工具】SVN_第6张图片

打开程序: 安装目录\bin\msc程序

【项目管理工具】SVN_第7张图片

3. 创建仓库

svn服务端创建完成需要创建仓库,仓库中存放要版本控制的文件

右键Repositories -》 Create New Repository

选择文件存储方式:

【项目管理工具】SVN_第8张图片

【项目管理工具】SVN_第9张图片

创建一个空的仓库:

【项目管理工具】SVN_第10张图片

设置用户访问权限:

【项目管理工具】SVN_第11张图片

仓库创建成功:

仓库地址为https://ip地址或计算机名/svn/仓库名称

【项目管理工具】SVN_第12张图片

4. 创工程目录

仓库中存放开发项目代码、文档等,需要创建一个工程目录。

右键仓库 -》新建 -》 Project Structure...

【项目管理工具】SVN_第13张图片

创建成功:

【项目管理工具】SVN_第14张图片

trunk:项目开发代码的主体,是从项目开始知道当前都处于活动的状态,从这里可以获得最新的源代码以及几乎所有的变更历史信息。

branch:从trunk的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大bug的修改,或者做实验性的开发,以及定制功能开发等。如果分支达到了预期的目的,通常可以被合并(Mgerge)到主干中。

tag:用来表示trunk和branch的某个点的状态,以代表项目的某个稳定状态,通常为最终发布状态。

工程创建完成,查看它的svn地址:

【项目管理工具】SVN_第15张图片

拷贝svn地址:

右键trunk -》 Copy URL to Clipboard

3. TortoiseSVN客户端

1. 由于官网下载较慢,选择百度网盘下载

链接:https://pan.baidu.com/s/1z4FU8K5C9MX0gUEIJQqZ6Q 密码:gvjm

【项目管理工具】SVN_第16张图片

安装完成后需要重启电脑!!!

重启后使用Tortoise浏览svn服务端的仓库的内容:

在桌面右键发现有 TortoiseSVN选项 选择Repo-broeser

【项目管理工具】SVN_第17张图片

进入后会让你输入用户名密码,下面会讲到

4. 权限管理(了解)

1. 认证授权机制

在企业开发中会为每位程序员、测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续访问,当用户访问仓库下某个目录时,svn服务对用户进行授权,如果用户拥有该目录的访问权限方可访问。

判断账号和密码输入是否正确的过程即认证过程。

判断用户是否拥有目录的读/写权限时即授权过程。

2. 创建用户

打开服务端 

Users -》 Create New User

【项目管理工具】SVN_第18张图片

查看已创建的用户:

【项目管理工具】SVN_第19张图片

3. 创建组

右键Groups -》 Create New Group 

【项目管理工具】SVN_第20张图片

修改组:

右键分组 -》 Edit...

4. 分配权限

给仓库下的每个目录分配权限对访问进行控制。

(1)删除系统安装后默认权限:

右键仓库 -》 Properties

【项目管理工具】SVN_第21张图片

(2)示例一:开发人员拥有读写权限

进入权限分配界面:

右键仓库 -》 Properties...

添加组或用户:

【项目管理工具】SVN_第22张图片

分配权限:

继承父目录权限、不可访问、读写权、读/写权限

【项目管理工具】SVN_第23张图片

客户端访问时输入账号密码:

【项目管理工具】SVN_第24张图片

登录测试是否有读/写权限:

右键trunk文件 -》 Create folder

(3)清楚认证缓存

右键TortoiseSVN -> Settings 

【项目管理工具】SVN_第25张图片

4. TortoiseSVN日常使用

1. 浏览仓库

Repo-browser: 浏览仓库中资源信息

【项目管理工具】SVN_第26张图片

2. 导入导出

(1)Export:导出项目,和checkout区别(checkout检出文件,含有.svn隐藏文件夹),会和svn仓库交互,export导出,没有.svn隐藏文件夹)

右键桌面 -> TortoiseSVN -> Export 。。。

(2)import 将本地资源导入到svn服务器

右键桌面 -> TortoiseSVN -> Import。。。

3. 修改提交

(1)Checkout

检出项目,复制项目的副本到本地。

右键桌面 -》 SVN Checkout...

【项目管理工具】SVN_第27张图片

 

(2)add

在检出的目录中添加文件:

新建一个文件 -> 右键TorortoiseSVN -> add(添加add标识) 

右键桌面 -》 SVN COMMIT(提交)

* add to ignore lit : 添加到忽略列表(标记该文件不需要版本控制)

(3)Commit

提交Commit 提交本地修改至svn服务器:

在检出目录或要提交修改的目录右键:SVN Commit...

(4)update

更新仓库的文件到本地

在检出目录或子目标或文件上右键:SVN Update

(5)Delete

删除版本库文件

右键文件 -》 delete (添加删除标记)

(6)恢复

在检出目录或子目录操作会记录操作日志,提交前可以回滚操作。

在要回滚的检出目录或子目录中右键: Revert...

5. 冲突处理

两个客户端同时修改同一个文件,改动同一个位置,发生冲突情况

如果当commit 遇到文件已经过时,说明另一个人可能改动过 ----- update

手动Merge 后,需要将编辑后冲突文件,标记为已经解决 , 再进行commit

6. eclipse的SVN插件使用

6.1 插件的安装

下载地址:链接:https://pan.baidu.com/s/1zidWGqERKN_dYK9wXHZruA 密码:9nnz

1. 进eclipse软件安装界面

help -> Instal New Software

2. 安装svn插件

【项目管理工具】SVN_第28张图片

上边命令行输入:SVN - jar:file:/e:/SVN/site-1.10.11.zip!/

点击下一步。

接受协议,完成。

出现提示,选择继续安装。OK

安装完成,查看eclipse视图有SVN选项说明安装成功:

【项目管理工具】SVN_第29张图片

6.2 将项目共享到svn

新建SVN仓库连接 , 切换“SVN资源库” 视图

在视图位置右键 -》 新建 -》资源库位置 -》 输入仓库位置

【项目管理工具】SVN_第30张图片

【项目管理工具】SVN_第31张图片

共享项目到svn

右键项目 -》 Team ->share Project...

6.3 从svn检出

将svn管理项目检出到工作区

右键svn资源库的仓库 -》 检出

6.4 解决冲突

右键项目 -》 Team -> 编辑冲突 -》 手动merge后,标记为解决

6.5 重置用户名密码

删除C:User(用户)\"你的用户名"\AppData\Roaming\Subversion\auth\下的所有文件

 

 

 

你可能感兴趣的:(开发环境)