学习笔记_saodisheng20_SVN

学习笔记_saodisheng20_SVN

1、svn介绍

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

​ 通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题:

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

1.2 什么是版本控制

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

1.3 svn是什么?

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

1.4 svn的使用方法

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

  

img
  • 复制-修改-合并方案(Subversion默认的模式)

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

  • 锁定-修改-解锁方案

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

2、svn服务端安装配置

2.1 两种服务端安装包

【官方安装包】

  官方网站:http://subversion.apache.org/

  下载:http://subversion.apache.org/download.cgi

  

image-20210621184646320

  官方提供的服务端安装包,安装后需要通过命令行操作,适用于专业配置管理员使用

【图形化服务端】

  志愿者开发的图形化操作界面的svn服务端,它适用于普通软件开发人员使用。

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

  

image-20210621184903434

2.2 安装图形化服务端

  

image-20210621185159476

  

image-20210621185405410

查看程序菜单:

  

img

查看服务,VisualSVN成功启动:

  

image-20210621190849752

2.3 创建仓库

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

  启动VisualSVN server manager,新建仓库:

  

img

  选择文件存储方式:

  

image-20210621190959165

  

image-20210621191054751

  创建一个空的仓库:

  

image-20210621191110694

  设置用户访问仓库权限:

  

image-20210621191127878

  仓库创建成功:

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

  

image-20210621191329033

  

image-20210621191401751

2.4 创建工程目录

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

  

img

  

image-20210621191654261

  创建成功:

  

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

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

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

  

img

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

  

image-20210621192004175

  拷贝svn地址(如果是第一次使用这一步需要创建用户):

  

img

3、TortoiseSVN客户端

3.1 svn客户端类型

  svn客户端需要通过网络访问svn服务端提交文件、查询文件等,可通过以下客户端类型访问svn服务端:

  1、使用Subversion提供的客户端命令,使用方式:在命令行下输入命令操作。

  2、使用Torotise图形化界面操作(推荐)

  3、使用Idea等开发工具插件操作(推荐)

3.2 TortoiseSVN的下载安装

  TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。

  TortoiseSVN是 Subversion 的 Windows 扩展。它使你避免接触 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里右键操作就可以了。

  

img

  下载:http://tortoisesvn.net/downloads.html 提供 32位和64位不同版本,安装tortoiseSVN 需要修改客户端电脑右键菜单,安装后需要重启电脑。

  

image-20210621192422921

3.3 浏览仓库

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

  

image-20210621192933268

image-20210621192950496

如果指定了账号和密码的话就需要输入账号密码:

image-20210621193032230

4、权限管理(了解)

4.1 认证授权机制

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

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

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

4.2 创建用户

右键创建用户:

  

image-20210621193609698

  查看已创建的用户:

  

image-20210621193701731

  修改用户:

  在指定用户上右键进行相关操作

4.3 创建组

  

image-20210621193817177

image-20210621194004912

查看创建的组:

  

image-20210621194030995

  修改组:

  选中指定的组别,右键进行相关操作

4.4 分配仅限

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

4.4.1 删除默认权限

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

  

image-20210621194211399

image-20210621194249694
4.4.2 示例一:开发人员拥有读写权限

  进入权限分配界面:

  

image-20210621194350007

  添加组或用户:

  

img

  分配权限:

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

  访问时输入账号:

  

image-20210621194734919

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

  

img
4.4.3 示例二:测试人员拥有读权限

  

img

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

  

img
4.4.4 清除认证缓存

  有几种情况需要清除认证缓存:

  1、本地使用多个账号登陆,每次输入的账号和密码都不一样

  2、当账号密码修改后(建议清理)

  

img

5、TortoiseSVN日常使用

5.1 浏览仓库

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

  

image-20210621195347160

image-20210621195416576

5.2 导入导出

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

    

img
  • import 将本地资源导入到svn 服务器

    

img

5.3 修改提交

  

img
5.3.1 Checkout

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

  在要检出的目录中右键:

  

img

  

img
5.3.2 add

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

  

img
  • Add to ignore list :添加到忽略列表 (标记该文件不需要版本控制 )

  

img
  • Add : 标记这个文件添加到服务器

  

img
5.3.3 Commit

  当检出目录或子目录中内容有修改,目录图标变为:

img

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

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

  

img

  

img

  

img

  提交后目录中的内容与svn服务同步,目录图标变为:

img
5.3.4 update

  更新仓库的文件到本地

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

  

img
  • 更新到最新版本

   

img
  • 更新到指定版本

  

img

    

img
5.3.5 Delete

  Delete :删除版本库文件

  

img

  标记删除后,本地文件删除,标记删除后需要提交。

5.3.6 恢复

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

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

  

img

  

img

5.4 冲突处理

  两个客户端同时修改同一个文件, 改动同一个位置,发生冲突情况。如果当commit 遇到文件已经过时,说明另一个人可能改动过 ----- update

  

img

​ db.properties 将本地和服务器合并到一起的文件 (不要直接看)

​ db.properties.mine 我本地自己修改后的文件

​ db.properties.r16 我修改之前的文件

​ db.properties.r17 别人修改后的文件

  

img

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

  

img

6、eclipse的SVN插件使用

6.1 svn插件安装

  下载Subversion的eclipse插件:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240

  下载 site-1.10.11.zip,本教程将此zip放在D盘。

  

img

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

  点击下一步

  接受协议,完成:

  

img

  出现提示,选择继续安装:

  

img

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

  

img

6.2 将项目共享到SVN

  共享项目到SVN

  

img

img

6.3 从svn检出

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

  

img

6.4 解决冲突

  

img

  手动merge后,标记为解决

  

img

6.5 重置用户名密码

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

   

img

7、idea的SVN使用

注意:在安装svn客户端的时候一定要勾选,否则在idea上集成svn的时候会找不到 svn.exe 而报错。

如果安装时忘记勾选了的话,安装包重新运行,选择modify,然后勾选command line client tools项就行了。

img

7.1 配置idea的svn插件

安装好svn客户端后,想启用idea的SVN插件还需要在idea配置一下,file - setting 按钮打开设置界面或者(Ctrl + Alt + S)快捷键

image-20210621203705422

7.2 Idea使用svn插件

img

7.3 从svn库中检出项目

image-20210621205540864

image-20210621205630297

输入公司的svn的地址check 出你想要的项目

image-20210621205649774

7.4 上传代码

选中项目中需要上传的文件和文件夹,注意,不要提交整个项目

img

如果无法提交,建议使用TortoiseSVN客户端进行提交

img

7.5 更新代码

选中要跟新的目录和文件

img

或者使用TortoiseSVN客户端进行更新

img

参考博客链接01

参考博客连接02

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值