搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
寸_铁
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Dockerfile实例_dockerfile文件例子
2
SpringCloud--Eureka集群
3
对话AI原生丨大模型如何重塑企业知识管理?
4
用junction工具来软件搬家_junction 软件
5
董付国老师Python系列教材推荐与选用参考
6
人工智能的道德与伦理
7
各种Java加密算法
8
人工智能与机器人学:智能自主系统的融合与未来
9
MACOS下执行python定时任务脚本_mac python3 每日凌晨2 点执行自动化脚本
10
2022年简历石沉大海,软件测试行业当前找工作有多难?_软件测试找工作好难
当前位置:
article
> 正文
SVN基本操作使用
作者:寸_铁 | 2024-07-18 18:06:04
赞
踩
svn
SVN
简介:
Subversion(SVN)是一种开源版本控制系统,由Apache Software Foundation维护和开发。它用于管理文件和目录的更改,并跟踪这些更改的历史记录,常用于软件开发和其他需要版本控制的项目。
主要特点:
集中式版本控制:SVN采用集中式版本控制模型,所有版本历史记录存储在中央服务器上,客户端从服务器获取和提交更改。
版本跟踪:每次提交操作都会生成一个唯一的版本号,所有文件和目录的变化都会被记录,方便后续回溯和恢复。
分支和标签:SVN支持创建分支(branch)和标签(tag),便于管理不同的开发线路和标记重要的版本。
目录版本化:不仅文件可以版本化,目录也可以版本化,这意味着目录的添加、删除和重命名等操作也会被记录。
二进制文件支持:SVN能够有效管理二进制文件和文本文件,并提供差异存储和传输,减少网络传输量和存储空间。
基本工作流程:
检出(Checkout):用户从服务器获取代码副本到本地工作目录。
编辑(Edit):在本地工作目录中编辑文件。
更新(Update):从服务器获取最新的代码更新到本地工作目录,确保代码同步。
提交(Commit):将本地工作目录中的更改提交到服务器,生成新版本。
优势和劣势
优势:
易于设置和使用,尤其适合小型到中型团队。
丰富的功能,包括原子提交、标签和分支管理。
广泛的社区支持和文档资源。
劣势:
集中式模型可能会在大规模团队协作中成为瓶颈。
相比于分布式版本控制系统(如Git),在处理分支和合并时可能较为繁琐。
01-SVN概述
1、为什么需要SVN版本控制软件
2、解决之道
SCM:软件配置管理
所谓的软件配置管理实际就是对软件源代码进行控制与管理
CVS
:元老级产品
VSS:入门级产品
ClearCase
:IBM公司提供技术支持,中坚级产品
SVN:主流产品
3、什么是SVN
SVN
全称
SubVersion
SVN
是近年来崛起的版本管理工具,是
CVS
的接班人。目前,绝大多数软件公司都使用
SVN
作为代码版本管理软件。
特点:
操作简单
,
入门简单
,
支持跨平台
(
Window/Linux/MacOS),
支持版本回退功能(时间机器)
4、获取SVN软件
属于
C/S
结构软件(客户端与服务器端)
服务端软件:VisualSVN
网址:
VisualSVN - Subversion-based version control for Windows
客户端软件:TortoiseSVN
网址:
http://tortoisesvn.net/downloads
02-SVN服务端软件安装
1、
SVN
工作流程
2、服务器端软件安装(VisualSVN)
服务端软件存储于软件/服务器端
1)双击服务端软件安装
2)下一步,继续
3)下一步,继续
4)下一步,继续
5)下一步,继续,安全完成。
03-SVN服务端配置
1
、创建一个项目
①
首先在SVN服务器端创建一个公有目录WebApp做为项目目录
②
在
WebApp
目录下创建Shop文件夹,做为Shop(版本仓库)
③
创建版本仓库,基本语法:
svnadmin
create Shop 文件夹路径(Shop仓库)
如果
Shop
仓库配置成功,那么Shop文件夹会显示以下目录结构
2、进行服务端监管
Apache
à
http://localhost
或(
ip
地址)访问到htdocs目录下的相关文件(监管)
SVN
à
svn://localhost
或(ip地址)访问到相关数据仓库(如Shop仓库)
基本语法:
svnserve
-d(后台运行)
-r
(监管目录)
版本仓库目录
如下图所示:
通过以上指令,我们的
svn://localhost
或
ip
地址就可以直接指向Shop版本仓库
3、权限控制
默认情况下,SVN服务器是不允许匿名用户上传文件到服务器端的,所以必须更改系统相关配置文件。
更改第19行代码,去除前面的空格以及#号,更改其值为write(可读写)
04-SVN客户端软件安装与使用
1
、获取软件安装包
2、确认操作系统位数
32位操作系统
64
位操作系统
如何确认操作系统位数呢?可以在计算机图标上鼠标右键
à
属性,如下图所示:
通过以上分析可知,我们需要安装64位客户端软件。
3
、客户端软件安装步骤
①
双击软件运行(TortoiseSVN)
②
同意许可协议,下一步:
③
选择默认安装即可,下一步:
④
下一步,Install,系统将会自动安装SVN软件,单击Finish即可。
注:在Tortoise
SVN
客户端软件安装完毕后,请一定要重启计算机,否则SVN图标是无法显示的。
如果我们鼠标右键出现如下两个图标,代表我们已经安装成功!
⑤
安装汉化包(
汉化包在官网可以直接下载,注意汉化包对应svn版本下载
)
双击运行安装语言包,系统将会自动寻找之前Tortoise
SVN
软件安装目录,并进行自动安装,安装完成后可以进行如下设置:
⑥
使用客户端软件连接SVN服务器
(
Checkout
检出)
首先在你的项目目录鼠标右键
à
TortoiseSVN
à
版本库浏览器
à
输出
SVN
服务器地址:
svn://
SVN服务器地址
à
Shop
项目(仓库)
显示隐藏文件
如果出现以上.svn隐藏文件夹,代表检出成功。
05-SVN使用详解(一)
1、回顾SVN三大指令
1
)(Checkout)检出操作:
①
链接到SVN服务器端
②
更新服务端数据到本地
注意:Checkout只在第一次链接时操作一次,以后如果进行更新操作请使用Update(更新指令)
2)(Commit)提交操作:
①
提交本地数据到服务器端
以上工作大部分是由项目经理完成的,那么如果公司新来一个程序员(李四),他需要做哪些操作呢?
3)检出操作,效果如下:
4)Commit(提交),效果如下:
以上指令通常是在模块开发完毕后上传
5)项目经理(Update更新操作)
05-SVN使用详解(二)
1
、图标集
1)常规图标
含义:当客户端文件与服务器端文件完全同步时,系统会显示以上图标
2)冲突图标
含义:当客户端提交的文件与服务器端数据有冲突,系统会显示以上图标
3)删除图标
含义:当服务端数据已删除,那么客户端该文件将显示以上图标
4
)增加图标
含义:当我们编写文档已添加到提交队列,那么系统将自动显示以上图标
5)无版本控制图标
含义:当我们编写的文件没有添加到上传队列,系统将自动显示以上图标
6)修改图标
含义:当客户端文件有修改但未提交,此时将自动显示以上图标
7)只读图标
含义:当客户端文件以只读形式存在时,将自动显示以上图标
8)锁定图标
含义:当服务端数据已锁定,那么客户端文件将自动显示以上图标
9)忽略图标
含义:客户端文件已忽略,不需要进行提交上传,那么将自动显示以上图标
2、忽略功能
有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加至忽略列表
1)忽略某个指定的文件
2)忽略某类型文件
05-SVN使用详解(三)
1
、什么是版本回退
有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本。
2、版本回退功能
①
在项目空白处鼠标右键,采用如下图所示操作
根据日志进行版本回退
根据日志信息选择要回退的状态,效果如下图所示
回退效果如下:
05-SVN使用详解(四)
1
、什么是版本冲突
在实际项目开发中,如果两个人同时修改某个文件就会产生版本冲突问题。
2
、模拟版本冲突
模拟以上过程,出现如下错误提示:
3、解决之道
1)合理分配项目开发时间
旺财 上午开发
小强 下午开发
2
)合理分配项目开发模块
旺财 购物车模块
小强 文章模块
3)通过SVN解决版本冲突问题
①
更新服务器端数据到本地
index.php :整合后的index.php文件
index
.php.min
e
:小强修改后的index.php文件
index.php.r6 :09:00更新时的index.php(起始状态)
index.php.r7 :旺财修改后的index.php文件
②
删除除index.php以外的其他三个文件
③
修改整合index.php冲突文件
④
重新提交数据到SVN服务器端,即可解决版本冲突问题
4
、
SVN如何切换账号
①鼠标右击选择TortoiseSVN--->Settings
②找到Saved Data选项
③然后选择下图红框里面的选项,单击clear
④弹出账号信息,勾选想要清除的账号点击ok即可清除
05-SVN使用详解(五)
1.svn提交过滤
2.找到如下位置,然后再加上自己想过滤的文件比如:*.iml target
注意:要用一个空格隔开,不用带 '/' 想过滤哪个目录,直接目录名即可。
06-配置多仓库与权限控制
1
、配置多仓库
在实际项目开发中,我们可能会同时开发多个项目,那么我们如何进行多项目监管呢?
通过
svnserve
进行仓库监管,但是监管指令只能监管某一个文件夹,而不能同时监管多个仓库。
答:可以通过监管WebApp总目录来达到监管所有仓库的目的
svnserve
-d
(
后台运行) -r(监管目录)
WebApp
(项目总目录)
①
打开
DOS
窗口,输入如下指令
svn
://
localhost
或
ip
地址来访问D:/svn/WebApp目录
如果需要访问Shop项目、Wechat项目
Shop
项目:svn://localhost/Shop
Wechat
项目:svn://localhost/Wechat
2
、权限控制
如果要使用权限控制有一个前提:必须首先开启权限功能
在每一个仓库中都有一个conf文件夹,里面有三个文件
authz文件:授权文件
告诉哪些用户具有哪些权限
passwd文件:认证文件
标识当前svn系统中某个仓库具有哪些用户以及相应的密码
默认情况下,以上两个文件都是禁用的,如需要使用,首先要开启以上两个文件
svnserve.conf
配置文件
开启步骤如下:
①
注释匿名用户的可读写权限,修改文件
svnserve.conf
②
开启认证文件与授权文件,修改文件
svnserve.conf
③
编写认证文件定义相关用户名与密码,修改
passwd文件
④
编写授权文件,修改
authz文件
⑤
测试
输入
admin
,admin888超级管理员
07-SVN服务的配置与管理
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
①
打开运行,输入cmd指令,打开DOS环境(请使用超级管理员运行)
②
输入一下指令
③
查看系统服务
控制面板
à
管理工具
à
服务
双击运行,启动SVNService服务
如果运行成功代表开启SVN监管服务。
2、创建批处理文件
启动服务
net
start 服务名称
停止服务 net stop
服务名称
删除服务 sc delete 服务名称
以上功能在实际项目开发中经常使用,所以可以封装为.bat批处理文件,效果如下:
08-模拟真实的开发环境
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%
④、具体使用步骤
第一步:复制post-commit.tmpl为post-commit.bat文件
第二步:填入相关批处理指令
第三步:在apache目录创建Shop项目并更新SVN服务端数据到本地
第四步:更新文件到SVN服务器端,可以在Shop目录实时获取到最新数据
第五步:可以通过虚拟主机形式直接访问更新文件
09-SVN扩展程序
1、什么是BAE云引擎
百度应用引擎(
BAE
)是百度推出的网络应用开发平台。基于
BAE
架构,使开发者不需要维护任何服务器,只需要简单的上传应用程序,就可以为用户提供服务。
开发者可以基于
BAE
平台进行
PHP
、
Java
、
Python
、
Nodejs
应用的开发、编译、发布、调试。
2
、如何使用BAE云引擎
BAE
地址:
百度智能云-云智一体深入产业
进入部署列表(BAE管理平台)
1)添加部署
创建成功,如下图所示
单击管理控制台,如下图所示
2)
SVN
管理
通过
SVN
进行检出操作(之后可以向SVN服务器中添加或下载相关数据)
3
)提交服务(Commit)
当我们的BAE服务器有数据的更新时,系统会自动弹出以下提示:
单击快捷发布
10-SVN客户端开启分支
1.首先关联仓库,
右键 --- 点击 ' SVN Checkout...'
2.在项目上点击右键,在TortoiseSVN菜单中选择
Branch/Tag
;
3.在To path输入框中输入新建分支的路径,一般是:/branches/分支名,也就是相当于分支保存的路径名;
4.在下面选择
HEAD revision in the repository
,为当前SVN中trunk目录下最新的代码建立分支,如果需要为制定的revision建立分支,可以进行选择;
5.点击OK分支建立完成
6.打开branches目录,发现目录依然为空,没有刚才建立的分支,这是因为分支建立的操作是在服务器端完成的,当需要编辑分支时,在branches目录点击
Update
,刚才建立的分支就会下载下来。
注:分支创建成功后,远程仓库可以查看到分支目录,本地仓库(branches)中不生成新的目录,需要 Update 下来
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop博客】
推荐阅读
article
CorelDRAW
Graphics
Suite
2024
简体中文免费版安装激活教程_coreldra...
市场领先的文件兼容性以及高质量的内容可帮助您将创意变为专业作品,从与众不同的徽标和标志到引人注目的营销材料以及令人赏心悦...
赞
踩
article
LeetCode
1827. 最少
操作
使
数组
递增_给
你
一个
整数
数组
nums
(下标从
0
开始)
。
...
文章目录1. 题目2. 解题1. 题目给
你
一个
整数
数组
nums
(下标从
0
开始)
。
每一次
操作
中,
你
可以选择
数组
中一...
赞
踩
article
没有
数
学
基础
可以
学
编程
吗?_程序员
需要
学
数
学
吗...
没有
数
学
基础
也
可以
学
习
编程
。虽然
数
学
在某些
编程
领域(如算法、数据分析、机器
学
习等)中扮演着重要角色,但
编程
本身并不完全依...
赞
踩
article
C#
,.
NET
常见
算法
...
【代码】
C#
,.
NET
常见
算法
。
C#
,.
NET
常见
算法
1.递归
算法
1.1.
C#
递归算...
赞
踩
article
山东大学
暑期
项目
实训
_山大暑期
项目
实训
...
项目
实训
日志第一周(三)小组进行分工后,每个人都开始开展自己的工作了。今天学习了前端和后端之间的交接工作,得到了如下的收...
赞
踩
article
1
、获取需要
的
数字
(
C语言
)...
该算法使用Start Experimental Instance of Visual Studio 2022软件实现。输...
赞
踩
article
解决
基础
连接
已经
关闭
: 未能为
SSL
/
TLS
安全通道建立信任关系_
imazing
基础
连接
已经
关闭
...
1. 加入命名空间using System.Net;using System.Security.Cryptography...
赞
踩
article
资深
程序员
教你
,
用
python
入门
的
知识抓取
抖音
短
视频
,
太厉害了_
python
读取
抖音
某个
用
户
的
视频
...
资深
程序员
分享如何使
用
Python3.6在Windows环境下抓取
抖音
短
视频
,
包括环境配置、所需模块介绍
,
以及从获取
视频
...
赞
踩
article
分布式
存储
ceph
部署...
RADOS 基础存储系统。
分布式
存储
ceph
部署 1、存储基础 (1)单机存储设备 DA...
赞
踩
article
C++:梦
的
开始——创建第一个
hello
world
(1)_
start
experimental
i...
我这里使用
的
编写代码
的
工具是Start Experimental Instance of Visual Studio 2...
赞
踩
article
使用VS 2015
创建
C++
项目
时,不显示
“
空
项目
”
_
visual
studio
创建
项目
中visu...
(1)打开Mi
c
rosoft Visual Studio,选择
“
新建
项目
”
;(2)在弹出窗口
“
新建
项目
”
的左侧导航栏中,...
赞
踩
article
Ngin
x
配置各种响应头防止
XSS
,点击劫持,
frame
恶意攻击_ngin
x
x
-
x
ss-prote...
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!X-Content-...
赞
踩
article
数据仓库
的
多维
数据
模型
_
多维
数据
模型
是
数据仓库
中
数据组织
的一种
模型
,
多维
数据
模型
工具
功能定位
是( )...
可能很多人理解的
数据仓库
就是基于
多维
数据
模型
构建,用于OLAP的数据平台,通过上一篇文章——
数据仓库
的基本架构,我们已经...
赞
踩
article
z
sh
:
permission
denied
:./
version
.
sh
_z
sh
:
permission
...
z
sh
:
permission
denied
:./
version
.
sh
出现这个提示的原因是没有读取
version
.
sh
的...
赞
踩
article
决策树
(
decision
tree
)
_
决策树
图...
决策树
_
决策树
图
决策树
图
决策树
(
decision
tree
):是一种基本的分类与回归方...
赞
踩
article
开源
项目
介绍 |
TKEStack
-
开源
容器
服务平台
...
滑至文末报名参与
开源
人才培养计划提交
项目
Proposal
TKEStack
项目
介绍标签:容器,, Kubernetes...
赞
踩
article
大
模型
学习
产品
,一个月顶一年 | 对话
网易
有道
周枫...
OpenAI CEO奥特曼曾表示:“AI女友只不过是一个美丽的陷阱,AI教育才是最应该去发力的一个领域。教与学是教育场景...
赞
踩
article
分布式
爬虫
入门_
分布式
爬虫
学习...
分布式
爬虫
简单理解之前无论是多线程
爬虫
,还是scrapy异步
爬虫
,都是在一台机器上。而
分布式
爬虫
则是将多台主机组合起来,...
赞
踩
article
使用队列
层序
遍历
,
序列化
二叉树
...
c++实现
序列化
二叉树
使用队列
层序
遍历
,
序列化
二叉树
...
赞
踩
article
【昇思25天
学习
打卡营第25天 | 基于
MindSpore
通过
GPT
实现
情感
分类
】...
通过
本实验,我深刻体会到了
MindSpore
在处理NLP任务时的强大能力。从环境配置到模型训练,再到评估,整个流程一气呵...
赞
踩
相关标签
mac
macos
编程语言
程序人生
python
算法
数据结构
web引用
基础连接关闭
SSL/TLS安全通道
C#
java
大数据
机器学习
分布式
ceph
c++
开发语言
nginx
xss
面试
permission
denied
zsh