SVN服务器搭建教程 svn服务端安装使用教程
yuyutoo 2024-10-13 09:12 9 浏览 0 评论
前言
SVN(Subversion)是一个自由开源的版本控制系统。当公司的开发团队在进行复杂的多项目开发时,SVN是最好的选择。
常见的源代码管理工具
CVS
历史悠久,现在几乎没人使用
SVN
集中式版本控制的代表
CVS的接班人,速度比CVS快,功能比CVS强大
在国内使用率非常高(70%~90%)
GIT
分布式源代码管理工具
目前被大多数开源项目使用
不过在国内企业尚未大规模普及
源代码管理工具出现的意义
目的
为了解决在软件开发过程中,由源代码引发的各种繁琐的问题
常见问题
无法后悔:做错了一个操作后,没有后悔药可以吃
版本备份:费空间、费时间
版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本
代码冲突:多人操作同一个文件(团队开发中的常见问题)
权限控制:无法对源代码进行精确的权限控制
追究责任:出现了严重的BUG,无法得知是谁干的,容易耍赖
作用
能追踪一个项目从诞生一直到定案的过程
记录一个项目的所有内容变化
方便地查阅特定版本的修订情况
SVN
原理
使用环境
服务器
客户端
用于存储客户端上传的源代码
可以在Windows上安装Visual SVN Server
大部分情况下,公司的开发人员不必亲自搭建SVN服务器
上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步
可以在Mac上使用命令行、Versions、Cornerstone、Xcode
开发人员就属于客户端这个角色
要想利用SVN管理源代码,必须得有2套环境
SVN下载地址
官方下载
百度云下载
安装
第一步
双击打开VisualSVN-Server-2.7.7.msi
第二步
同意遵守协议
第三步
选择Visual VSN 服务器和管理控制台, 和添加SVN命令行工具到系统Path路径, 然后下一步
第四步
选择版本
第五步
由于SVN都是在公司内网里使用,不存在数据被截取的安全问题
所以为了速度更快,不要使用https
取消勾选 Use secure connection(https://)
第六步
开始安装
第七步
安装完成后会询问你是否需要运行
第八步
安装成功打开软件
创建代码仓库
第一步
第二步
填写代码仓库的名称
第三步
仓库目录说明
db目录:就是所有版本控制的数据存放文件。
hooks目录:脚本文件的目录。
locks目录:用放置hook来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端。
format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)
第四步
添加用户
访问SVN服务器
本机直接访问
如果其他电脑想要访问仓库
要把仓库地址的前缀换成电脑的IP
对比Git
适用对象不同。 Git 适用于参与开源项目的开发者。 他们由于水平高,更在乎的是效率而不是易用性。Svn 则不同, 它适合普通的公司开发团队。使用起来更加容易。
使用的场合不同。 Git 适用于通过Internet,有多个开发角色的单个项目开发, Svn 适合企业内部由项目经理统一协调的多个并行项目的开发。
权限管理策略不同。 Git 没有严格的权限管理控制,只要有帐号,就可以导出、导入代码,甚至执行回退操作。 Svn 则有严格的权限管理, 可以按组、按个人进行针对某个子目录的权限控制。区分读、写权限。更严格的,不支持回退操作。保证代码永远可以追踪。
分支( branch )的使用范围不一样。 Git 中, 你只能针对整个仓库作 branch, 而且一旦删除,便无法恢复。而 svn 中, branch 可以针对任何子目录,它本质上是一个拷贝操作。 所以,可以建立非常多、层次性的 branch, 并且,在不需要时将其删除,而以后需要时只要 checkout 老的 svn 版本就可以了。
基于第三点, Git 适用于单纯的软件项目,典型的就是一些开源项目,比如 Linux 内核、 busybox 等。相反, Svn 擅长多项目管理。 比如,你可以在一个 svn 仓库中存放一个手机项目的 bsp/ 设计文档 / 文件系统/ 应用程序 / 自动化编译脚本, 或者在一个 svn 中存放 5 款手机项目的文件系统。 git 中必须建立 n ( 项目数 )* m (组件数) 个仓库。 Svn 中只需要最多 n 或者 m 个就可以了。
Git 使用 128 位 ID 作为版本号, 而且 checkout 时要注明是哪个 branch, 而 svn 使用一个递增的序列号作为全局唯一的版本号, 更加简明易懂。虽然可以使用 git tag 来建立一些文字化的别名,但是毕竟那只是针对特殊版本。
可跟踪性,git 的典型开发过程为: 建立分支,进行开发,提交到本地 master,删除分支。这样做的后果是以前 的修改 细节会丢失。 而在 svn 下做同样的事情,不会丢失任何细节。 这里是一个有趣的链接,表明了 git 下典型的工作方式:(以master为核心,不断创建新branch, 删除旧branch):
局部更新,局部还原。SVN由于是在每个文件夹建立一个.svn文件夹来实现管理,所以可以很简单实现局部更新或者还原。假如你只希望更新某些部分,则svn可以很好实现。同时代码写错了,同时可以很好实现局部还原,当然git也可以通过历史版本还原,但是无法简单地实现局部还原。
相关推荐
- 苹果要求全新App开发四月起必须支持“齐刘海”
-
今日消息,苹果公司通过邮件告知应用程序开发者,从2018年4月起提交给AppStore的所有新应用必须支持iPhoneX的超级视网膜显示器。这意味着新应用程序的开发者必须确保它们适应“齐刘海”,并...
- 耗时一年多,QEMU开发者成功在电脑上模拟了初版iPhone OS
-
IT之家12月24日消息,用户通过黑苹果(Hackintosh)工具,已经可以在非Mac设备上运行macOS系统。但由于种种限制,至今也没有多少人能够在PC上运行iOS系统。现...
- 下个月的WWDC后,苹果将发布原生Watch SDK测试版本
-
在近日Re/code举办的CodeConference上,苹果的运营副总裁JeffWilliams称,目前有4000多个AppleWatch应用上线,而未来的苹果表开发者套件,将允许开发者直接获...
- 苹果再次提醒:4月起强制要求APP进行适配
-
点击右上角关注我们,每天给您带来最新最潮的科技资讯,让您足不出户也知道科技圈大事!软件适配对于许多厂商来说都是一个比较头疼的事,苹果在握紧AppStore审核权的情况下情况要好许多。最近他们公布了...
- 苹果Xcode 16首个Beta版发布,AI代码补全最少需16GB内存
-
IT之家6月12日消息,在苹果WWDC24开发者大会上,苹果发布了iOS18、macOS15Sequoia等最新版本系统更新。与此同时,苹果推出了Xcode16开发工具的首...
- 传苹果已向特定开发者开放iWatch SDK
-
|责编:薄志强苹果会不会在这次发布会中发布全新的智能手表产品iWatch还很难说,不少人认为由于iWatch的消息少之又少,很可能这次还是没有iWatch。不过现在又有外媒传出消息称,苹果已经选定了...
- 苹果发布Swift 6语言:引入新测试框架、增强C++ 互操作性
-
IT之家9月20日消息,科技媒体devclass昨日(9月19日)报道,苹果公司在发布iOS/iPadOS18和macOS15Sequoia系统之外,还发布了Sw...
- 发布Siri SDK 之前苹果还是先想想这个问题
-
今年的GoogleI/O大会上,在预览GoogleHome时,我们就看到了设备可以互相对话的场景是多么惊艳,苹果快点跟上吧。最近因为亚马逊Echo和谷歌GoogleHome的火热...
- iOS 17.2 SDK代码确认古尔曼爆料:免开箱更新苹果iPhone系统
-
IT之家10月27日消息,彭博社的马克古尔曼(MarkGurman)本月早些时候发布报道,称苹果正在研发新的系统,可以让员工在不拆开包装的情况下,升级iPhone的iOS系统。根据国...
- 《企业应用架构模式》之事件驱动架构
-
事件驱动架构(Event-DrivenArchitecture,EDA)是一种强调事件流和异步通信的应用程序架构。在该架构中,应用程序被分解为多个小型、可独立部署的组件,这些组件通过事件进行通信...
- k8s中常用的controller以及用途和对应机制
-
controller的用途ReplicaSet、Deployment、StatefulSet:用于无状态和有状态应用的副本管理。DaemonSet:确保每个节点上都运行一个副本的控制器。...
- Disruptor框架源码阅读-如何不重复消费
-
RingBuffer如何保证数据不丢失由于ringbuffer是一个环形的队列,那么生产者和消费者在遍历这个队列的时候,如何制衡呢?1、生产快,消费慢,数据丢失?生产者速度过快,导致一个对象还没消...
- C# 控制电脑睡眠,休眠,关机以及唤醒
-
最近碰到一个关于芯片测试过程中的问题,这颗芯片是用在笔记本端口上,笔记本客户那边会有一个压力测试,就是频繁的电脑电源状态切换,S0(正常使用的开机状态),S3(睡眠模式),S4(休眠模式)以及S5(关...
- 大厂防止超卖的7种实现,很受用!(大厂防止超卖的7种实现,很受用的产品)
-
高并发场景在现场的日常工作中很常见,特别是在互联网公司中,这篇文章就来通过秒杀商品来模拟高并发的场景。本文环境:...
- 臻识车牌识别配制MQTT通讯,解析车号
-
在物联网项目中,我们的软件与车牌识别通讯,通常使用MQTT通讯更简单。...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
【开源分享】2024在线客服系统PHP源码(安装教程+全新UI)
-
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)