百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

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通讯更简单。...

取消回复欢迎 发表评论: