svn使用

news2024/12/25 13:35:20

一、SVN概述

1.1为什么需要SVN版本控制软件

1.2解决之道

SCM:软件配置管理

所谓的软件配置管理实际就是对软件源代码进行控制与管理

CVS:元老级产品

VSS:入门级产品

ClearCase:IBM公司提供技术支持,中坚级产品

1.3什么是SVN

  • SVN全称SubVersion
  • SVN是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数软件公司都使用SVN作为代码版本管理软件。

特点:操作简单,入门容易

支持跨平台(Window/Linux/MacOS)

支持版本回退功能(时间机器)

1.4获取SVN软件

属于C/S结构软件(客户端与服务器端)

服务端软件:VisualSVN

网址:VisualSVN - Subversion-based version control for Windows

客户端软件:TortoiseSVN

网址:

http://tortoisesvn.net/downloads

二、SVN软件安装

2.1SVN工作流程

2.2服务器端软件安装(VisualSVN)

服务端软件存储于软件/服务器端

1.双击服务端软件安装

2.下一步,继续

3.下一步,继续

4.下一步,继续

5.下一步,继续,安全完成。

三、SVN服务端配置

3.1创建一个项目

1.首先在SVN服务器端创建一个公有目录WebApp做为项目目录

2.在WebApp目录下创建Shop文件夹,做为Shop(版本仓库)

3. 创建版本仓库,基本语法:

svnadmin create Shop 文件夹路径(Shop仓库)

如果Shop仓库配置成功,那么Shop文件夹会显示以下目录结构

3.2进行服务端监管

Apacheàhttp://localhost或(ip地址)访问到htdocs目录下的相关文件(监管)

SVNàsvn://localhost或(ip地址)访问到相关数据仓库(如Shop仓库)

基本语法:

svnserve  -d(后台运行)  -r(监管目录) 版本仓库目录

如下图所示:

通过以上指令,我们的svn://localhost或ip地址就可以直接指向Shop版本仓库

3.3权限控制

默认情况下,SVN服务器是不允许匿名用户上传文件到服务器端的,所以必须更改系统相关配置文件。

更改第19行代码,去除前面的空格以及#号,更改其值为write(可读写)

四、SVN客户端软件安装与使用

4.1获取软件安装包

4.2确认操作系统位数

32位操作系统

64位操作系统

如何确认操作系统位数呢?可以在计算机图标上鼠标右键à属性,如下图所示

通过以上分析可知,我们需要安装64位客户端软件。

4.3客户端软件安装步骤

① 双击软件运行(TortoiseSVN)

② 同意许可协议,下一步:

③ 选择默认安装即可,下一步

④ 下一步,Install,系统将会自动安装SVN软件,单击Finish即可。

在TortoiseSVN客户端软件安装完毕后请一定要重启计算机,否则SVN图标是无法显示的。

如果我们鼠标右键出现如下两个图标,代表我们已经安装成功!

⑤ 安装汉化包

双击运行安装语言包,系统将会自动寻找之前TortoiseSVN软件安装目录,并进行自动安装,安装完成后可以进行如下设置:

⑥ 使用客户端软件连接SVN服务器

(Checkout检出)

首先在你的项目目录鼠标右键àTortoiseSVNà版本库浏览器à输出SVN服务器地址:

svn://SVN服务器地址à Shop项目(仓库)

显示隐藏文件

如果出现以上.svn隐藏文件夹,代表检出成功。

五、SVN使用详解(一)

5.1回顾SVN三大指令

1)(Checkout)检出操作:① 链接到SVN服务器端 ② 更新服务端数据到本地

注意:Checkout只在第一次链接时操作一次,以后如果进行更新操作请使用Update(更新指令)

2)(Commit)提交操作:① 提交本地数据到服务器端

 

以上工作大部分是由项目经理完成的,那么如果公司新来一个程序员(李四),他需要做哪些操作呢?

1)检出操作,效果如下:

2)Commit(提交),效果如下:

以上指令通常是在模块开发完毕后上传

3)项目经理(Update更新操作)

六、SVN使用详解(二)

6.1图标集

1.常规图标

含义:当客户端文件与服务器端文件完全同步时,系统会显示以上图标

2.冲突图标

含义:当客户端提交的文件与服务器端数据有冲突,系统会显示以上图标

3.删除图标

含义:当服务端数据已删除,那么客户端该文件将显示以上图标

4.增加图标

含义:当我们编写文档已添加到提交队列,那么系统将自动显示以上图标

5.无版本控制图标

含义:当我们编写的文件没有添加到上传队列,系统将自动显示以上图标

6.修改图标

含义:当客户端文件有修改但未提交,此时将自动显示以上图标

7.只读图标

含义:当客户端文件以只读形式存在时,将自动显示以上图标

8.锁定图标

含义:当服务端数据已锁定,那么客户端文件将自动显示以上图标

9.忽略图标

含义:客户端文件已忽略,不需要进行提交上传,那么将自动显示以上图标

6.2忽略功能

有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加至忽略列表

1.忽略某个指定的文件

2.忽略某类型文件

七、SVN使用详解(三)

7.1什么是版本回退

有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本。

7.2版本回退功能

① 在项目空白处鼠标右键,采用如下图所示操作

根据日志进行版本回退

根据日志信息选择要回退的状态,效果如下图所示

回退效果如下:

八、SVN使用详解(四)

8.1什么是版本冲突

在实际项目开发中,如果两个人同时修改某个文件就会产生版本冲突问题

8.2模拟版本冲突

 

模拟以上过程,出现如下错误提示:

8.3解决之道

1.合理分配项目开发时间

旺财  上午开发

小强  下午开发

2.合理分配项目开发模块

旺财   购物车模块

小强   文章模块

3.通过SVN解决版本冲突问题

① 更新服务器端数据到本地

index.php :整合后的index.php文件

index.php.mine :小强修改后的index.php文件

index.php.r6 :09:00更新时的index.php(起始状态)

index.php.r7 :旺财修改后的index.php文件

② 删除除index.php以外的其他三个文件

③ 修改整合index.php冲突文件

④ 重新提交数据到SVN服务器端,即可解决版本冲突问题

九、配置多仓库与权限控制

9.1配置多仓库

在实际项目开发中,我们可能会同时开发多个项目,那么我们如何进行多项目监管呢?

通过svnserve进行仓库监管,但是监管指令只能监管某一个文件夹,而不能同时监管多个仓库。

答:可以通过监管WebApp总目录来达到监管所有仓库的目的

svnserve   -d(后台运行)   -r(监管目录)   WebApp(项目总目录)

① 打开DOS窗口,输入如下指令

svn://localhost或ip地址来访问D:/svn/WebApp目录

如果需要访问Shop项目、Wechat项目

Shop项目:svn://localhost/Shop

Wechat项目:svn://localhost/Wechat

9.2权限控制

如果要使用权限控制有一个前提:必须首先开启权限功能

在每一个仓库中都有一个conf文件夹,里面有三个文件

authz文件:授权文件

告诉哪些用户具有哪些权限

passwd文件:认证文件

标识当前svn系统中某个仓库具有哪些用户以及相应的密码

默认情况下,以上两个文件都是禁用的,如需要使用,首先要开启以上两个文件

svnserve.conf 配置文件

开启步骤如下:

1.注释匿名用户的可读写权限

2.开启认证文件与授权文件

3.编写认证文件定义相关用户名与密码

4.编写授权文件

5.测试

输入admin,admin888超级管理员

十、SVN服务的配置与管理

10.1配置自启动服务

sc create SVNService binpath= “D:\subversion\bin\svnserve.exe --service -r D:/svnroot” start= auto

sc create 服务名称 binpath=空格”svnserve.exe –service –r D:/svn/WebApp” start=空格auto

创建系统服务,服务名SVNService

1.打开运行,输入cmd指令,打开DOS环境(请使用超级管理员运行)

2.输入一下指令

3.查看系统服务

控制面板-->管理工具-->服务

双击运行,启动SVNService服务

如果运行成功代表开启SVN监管服务。

10.2创建批处理文件

启动服务  net  start   服务名称

停止服务  net  stop    服务名称

删除服务  sc   delete  服务名称

以上功能在实际项目开发中经常使用,所以可以封装为.bat批处理文件,效果如下:

十一、模拟真实的开发环境

1、SVN工作流程

2、钩子程序

所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改。

默认情况下,钩子的子目录(版本仓库/hooks/)中包含各种版本库钩子模板。

post-commit.tmpl :事务完成后所触发的钩子程序

钩子程序默认情况可以采用批处理指令或Shell指令来进行编写

3、通过批处理指令编写钩子程序

① 指令svn服务端工作目录

设置服务器端SVN路径

SET SVN="D:\svn\bin\svn.exe“

② 指定Web服务器工作目录

设置服务器端项目运行目录

SET DIR="D:\server\apache\htdocs\shop"

③ 通过update指令实时更新数据到DIR目录中

SVN update %DIR%

4、具体使用步骤

第一步:复制post-commit.tmpl为post-commit.bat文件

第二步:填入相关批处理指令

第三步:在apache目录创建Shop项目并更新SVN服务端数据到本地

第四步:更新文件到SVN服务器端,可以在Shop目录实时获取到最新数据

第五步:可以通过虚拟主机形式直接访问更新文件

十二、SVN扩展程序

12.1什么是BAE云引擎

百度应用引擎(BAE)是百度推出的网络应用开发平台。基于BAE架构,使开发者不需要维护任何服务器,只需要简单的上传应用程序,就可以为用户提供服务。

开发者可以基于BAE平台进行PHP、Java、Python、Nodejs应用的开发、编译、发布、调试。

12.2如何使用BAE云引擎

BAE地址:百度智能云-智能时代基础设施

进入部署列表(BAE管理平台)

1.添加部署

创建成功,如下图所示

单击管理控制台,如下图所示

2.SVN管理

通过SVN进行检出操作(之后可以向SVN服务器中添加或下载相关数据)

3.提交服务(Commit)

当我们的BAE服务器有数据的更新时,系统会自动弹出以下提示:

单击快捷发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/386424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【无标题】开发板设置系统时间

开发板设置系统时间环境查看系统时间查看硬件时间设置系统时间设置RTC时间时钟包括硬件时钟和系统时钟,系统时钟就是linux系统显示的时间,用命令 date可以显示当前系统时间;硬件时钟就是硬件自身的时间了。它们两者没有关系的,但是…

如何利用Power Virtual Agents机器人远程打开电脑中的应用

今天我们来介绍如何利用Power Virtual Agents来远程控制电脑。我们的设计思路是在聊天机器人里输入触发短语后打开自己电脑中的题库软件。 首先,进入已经创建好的聊天机器人编辑界面。 新建一个主题后,在“新建主题”中添加“触发短语”。 添加节点后&a…

C++代码优化(3):条款13~17

"野性袒露着灵魂纯粹"条款13:以对象管理资源(1)什么是资源?C中最常使用的资源就是动态内存分配,在系统编程层面上,文件描述符(fd)、互斥锁(mutex)、套接字网络socket……不管是哪一种资源,重要的是,你不使用…

CEC2014:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解CEC2014(提供MATLAB代码

一、鱼鹰优化算法简介 鱼鹰优化算法(Osprey optimization algorithm,OOA)由Mohammad Dehghani 和 Pavel Trojovsk于2023年提出,其模拟鱼鹰的捕食行为。 鱼鹰是鹰形目、鹗科、鹗属的仅有的一种中型猛禽。雌雄相似。体长51-64厘米…

Spark 任务调度机制

1.Spark任务提交流程 Spark YARN-Cluster模式下的任务提交流程,如下图所示: 图YARN-Cluster任务提交流程 下面的时序图清晰地说明了一个Spark应用程序从提交到运行的完整流程: 图Spark任务提交时序图 提交一个Spark应用程序,首…

mysql数据库之存储过程

一、存储过程简介。 存储过程是事先经过编译并存储在数据库中的一段sql语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是也有好处的。 存储过程思想上很简单&…

Mysql常见面试题总结

1、什么是存储引擎 存储引擎指定了表的类型,即如何存储和索引数据,是否支持事务,同时存储引擎也决定了表在计算机中的存储方式。 2、查看数据库支持哪些存储引擎使用什么命令? -- 查看数据库支持的存储引擎 show engines; 或者 …

百趣代谢组学分享,关于儿童Graves病相关的新环境物质的鉴定

代谢组学文章标题:Identification of Novel Environmental Substances Relevant to Pediatric Graves’ Disease 发表期刊:Frontiers in endocrinology 影响因子:6.055 作者单位:苏州大学附属儿童医院 百趣提供服务&#xf…

外贸建站多少钱才能达到预期效果?

外贸建站多少钱才能达到预期效果?这是每个外贸企业都会问的问题。作为一个做外贸建站多年的人,我有一些个人的操盘感想。 首先,我认为外贸建站的投资是非常必要的。 因为在现代社会,网站已经成为外贸企业开展业务的必要工具之一…

3种方法删除7-Zip压缩包的密码

7-Zip压缩软件是一款完全免费且开源的软件,不仅能压缩和解压7-Zip压缩包,还能给压缩包设置打开密码。 有些小伙伴可能会遇到这样的问题,7-Zip压缩包设置密码后,过了一段时间不需要密码保护了,或者一不小心忘记了密码&…

后端快速上手前端三剑客 HtmlCSSJavaScript

文章目录前言HTML1.基础标签2.多媒体标签:3.表格&列表&布局4.表单CSS1.简介2.导入方式3.选择器JavaScript1.简介2.引入方式3.基本语法4.对象(1) 基本对象(2) BOM对象(3) DOM对象5.事件前言 结构:HTML 表现:CSS 行为:Java…

D. Linguistics(思维 + 贪心)

Problem - D - Codeforces Alina发现了一种奇怪的语言,它只有4个单词:a, B, AB, BA。事实也证明,在这种语言中没有空格:一个句子是通过将单词连接成一个字符串来写的。Alina发现了一个这样的句子,她很好奇:有没有可能它恰好由a个单词a, b个单…

EasyExcel You can try specifying the ‘excelType‘ yourself 异常排查与处理

目录 问题发现 报错信息 问题排查 1、确定异常 2、查询easyexcel源码读取文件源码 3、查看业务代码 优化方案 1、将路径获取文件流的方式换为httpclient获取 2、dug测试修改代码 总结 问题发现 在测试环境测试导入订单,发现订单导入提示数据导入异常。 …

Python dict字典全部操作方法

文章目录一. 介绍二. 字典的创建1. 手动创建2. 使用内置函数dict()创建3. 使用dict.fromkeys()方法创建三. 字典元素的读取1. 下标方式读取Value2. dict.get()读取Value3. keys()方法返回“键”4. values()方法返回“值”5. items()方法返回“键-值”对四. 字典元素的添加与修改…

【20230227】回溯算法小结

回溯法又叫回溯搜索法,是搜索的一种方式。回溯法本质是穷举所有可能。如果想让回溯法高效一些,可以加一些剪枝操作。回溯算法解决的经典问题:组合问题切割问题子集问题排列问题棋盘问题如何去理解回溯法?回溯法解决的问题都可以抽…

hadoop调优

hadoop调优 1 HDFS核心参数 1.1 NameNode内存生产配置 1.1.1 NameNode内存计算 每个文件块大概占用150byte,如果一台服务器128G,能存储的文件块如下 128 (G)* 1024(MB) * 1024(KB) * 1024(Byte) / 150 Byte 9.1 亿 1.1.2 Hadoop2.x 在Hadoop2.x中…

Linux--多线程(3)

目录1. POSIX信号量1.1 概念2. 基于环形队列的生产消费者模型2.1 环形队列的基本原理2.2 基本实现思想3. 多生产多消费1. POSIX信号量 1.1 概念 信号量本质是一个计数器,申请了信号量以后,可以达到预定临界资源的效果。 POSIX信号量和SystemV信号量相同…

【自动包装线标签打印翻转问题沟通】

最近纺丝自动包装线的标签打印机自动打印标签,是翻转状态。) 但是这个打印机它不是平放的,它是通过悬臂安装在半空的中的,是翻转的, 它的标签一个打在侧面,一个打在正前方,打印出来的样子是这样的。 是反…

全国媒体邀约怎么做?邀请媒体有哪些注意事项呢?

传媒如春雨,润物细无声,大家好好多企业或者机构都在参加外地的展览展会,活动会议,或者由于多种方面的考虑,会在公司总部以外的地方去做活动和发布会,在一个相对陌生的地方,不论是活动准备&#…

WebRTC → 多人通讯架构浅析

1、一对一通信模型一对一通信中,WebRTC会先尝试两个终端之间是否可以通过P2P直接进行通信,无法通信时会通过STUN/TURN服务器进行中转;其中STUN/TURN服务器的作用在不能直连时是中继服务器,通过该服务器进行端到端之间的数据中转&a…