搭建SVN 服务-基础

Linux 搭建 SVN 服务器及使用教程 首先要明确CentOS7的默认防火墙为firewallD。项目ip可以通过 ip addr 或者 ifconfig 查看 inet,repository为当初建立的SVN版本库。多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题。地址栏输入 svn://项目ip:3690/repository。,用户权限如果是设的分组,仍需设置每个角色对应的密码。查看系统下有没有安装过或有安装过老版本的SVN。如果有老版本先运行一下,删除老版本。修改SVN仓库的配置文件。 阅读详情

一. SVN 简介

       Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

 

SVN中的一些概念 :

(1). repository(源代码库)

       源代码统一存放的地方

(2). Checkout (提取)

       当你手上没有源代码的时候,你需要从repository checkout一份

(3). Commit (提交)

       当你已经修改了代码,你就需要Commit到repository

(4). Update (更新)

       当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更 

 

       日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

       如果两个程序员同时修改了同一个文件呢,  SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。

 

客户端软件:

       (1)Windows下常用的客户端软件常用TortoiseSVN。它是一个免费的开源的客户端。 下载地址:http://tortoisesvn.net/downloads.html

       (2)向Myeclipse,也有一些SVN的插件。

 

Subversion提供以下主要功能:

(1)目录版本控制

       CVS 只能跟踪单个文件的历史, 不过 Subversion 实作了一个 “虚拟” 的版本控管文件系统, 能够依时间跟踪整个目录的变动。 目录和文件都能进行版本控制。

 

(2)真实的版本历史

       自从CVS限制了文件的版本记录,CVS并不支持那些可能发生在文件上,但会影响所在目录内容的操作,如同复制和重命名。除此之外,在CVS里你不能用拥有同样名字但是没有继承老版本历史或者根本没有关系的文件替换一个已经纳入系统的文件。在Subversion中,你可以增加(add)、删除(delete)、复制(copy)和重命名(rename),无论是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。

 

(3)自动提交

       一个提交动作,不是全部更新到了档案库中,就是完全不更新。这允许开发人员以逻辑区间建立并提交变动,以防止当部分提交成功时出现的问题。

 

(4)纳入版本控管的元数据

       每一个文件与目录都附有一組属性关键字并和属性值相关联。你可以创建, 并儲存任何你想要的Key/Value对。 属性是随着时间来作版本控管的, 就像文件內容一样。

 

(5)选择不同的网络层

       Subversion 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制。 Subversion 可以作为一个扩展模块嵌入到Apache HTTP 服务器中。这个为Subversion提供了非常先进的稳定性和协同工作能力,除此之外还提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及文件库浏览等等。还有一个轻量级的独立Subversion服务器, 使用的是自定义的通信协议, 可以很容易地通过 ssh 以 tunnel 方式使用。

 

(6)一致的数据处理方式

       Subversion 使用二进制差异算法来异表示文件的差异, 它对文字(人类可理解的)与二进制文件(人类无法理解的) 两类的文件都一视同仁。 这两类的文件都同样地以压缩形式储存在档案库中, 而且文件差异是以两个方向在网络上传输的。

 

(7)有效的分支(branch)与标签(tag)

       在分支与标签上的消耗并不必一定要与项目大小成正比。 Subversion 建立分支与标签的方法, 就只是复制该项目, 使用的方法就类似于硬连接(hard-link)。 所以这些操作只会花费很小, 而且是固定的时间。

 

(8)Hackability

       Subversion没有任何的历史包袱; 它主要是一群共用的 C 程序库, 具有定义完善的API。这使得 Subversion 便于维护, 并且可被其它应用程序与程序语言使用。

 

 

二.  SVN 服务器搭建

 

2.1 使用yum 安装SVN包

 

关于YUM 服务器的配置参考:

Linux 搭建 YUM 服务器

http://blog.youkuaiyun.com/tianlesoftware/archive/2011/01/03/6113902.aspx

 

[root@singledb ~]# yum install -y subversion

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package subversion.i386 0:1.4.2-4.el5_3.1 set to be updated

--> Finished Dependency Resolution

 

Dependencies Resolved

 

====================================================================================================

 Package                Arch             Version                        Repository             Size

====================================================================================================

Installing:

 subversion             i386             1.4.2-4.el5_3.1                rhel-base             2.3 M

 

Transaction Summary

====================================================================================================

Install      1 Package(s)        

Update       0 Package(s)        

Remove       0 Package(s)        

 

Total download size: 2.3 M

Downloading Packages:

subversion-1.4.2-4.el5_3.1.i386.rpm                                          | 2.3 MB     00:00    

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing     : subversion                                                                   1/1

 

Installed:

  subversion.i386 0:1.4.2-4.el5_3.1                                                                

 

Complete!

[root@singledb ~]#

 

验证安装版本:

[root@singledb ~]# svnserve --version

svnserve, version 1.4.2 (r22196)

   compiled Aug  5 2009, 19:03:56

 

Copyright (C) 2000-2006 CollabNet.

Subversion is open source software, see http://subversion.tigris.org/

This product includes software developed by CollabNet (http://www.Collab.Net/).

 

The following repository back-end (FS) modules are available:

 

* fs_base : Module for working with a Berkeley DB repository.

* fs_fs : Module for working with a plain file (FSFS) repository.

 

 

2.2 创建SVN 版本库

[root@singledb ~]# mkdir /u02/svn

[root@singledb ~]# svnadmin create /u02/svn/davesvn  --davesvn为版本库名称

 

 

2.3  SVN 配置

 

创建版本库后,在这个目录下会生成3个配置文件:

[root@singledb conf]# pwd

/u02/svn/davesvn/conf

[root@singledb conf]# ls

authz  passwd  svnserve.conf

 

(1)svnserve.conf:  svn服务配置文件下。

(2)passwd: 用户名口令文件。

(3)authz: 权限配置文件。 

 

svnserve.conf 文件,该文件配置项分为以下5项:

       anon-access: 控制非鉴权用户访问版本库的权限。

       auth-access:  控制鉴权用户访问版本库的权限。

       password-db: 指定用户名口令文件名。

       authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

       realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

 

 

Passwd 文件:

       我们在svnserve.conf文件里启用这个文件。然后配置如下:

[root@singledb conf]# cat passwd

### This file is an example password file for svnserve.

### Its format is similar to that of svnserve.conf. As shown in the

### example below it contains one section labelled [users].

### The name and password for each user follow, one account per line.

 

[users]

# harry = harryssecret

# sally = sallyssecret

dave = davepwd

tianlesoftware = tianlesoftwarepwd

 

 

authz  文件:

在网上找到一个很好的配置例子:

[groups]

admin = john, kate

devteam1 = john, rachel, sally

devteam2 = kate, peter, mark

docs = bob, jane, mike

training = zak

--这里把不同用户放到不同的组里面,下面在设置目录访问权限的时候,用目录来操作就可以了。

 

# 为所有库指定默认访问规则

# 所有人可以读,管理员可以写,危险分子没有任何权限

[/]  --对应我测试里的:/u02/svn 目录

* = r

@admin = rw

dangerman =

 

# 允许开发人员可以完全访问他们的项目版本库

[proj1:/]

@devteam1 = rw

[proj2:/]

@devteam2 = rw

[bigproj:/]

@devteam1 = rw

@devteam2 = rw

trevor = rw

 

# 文档编写人员对所有的docs目录有写权限

[/trunk/doc]

@docs = rw

 

# 培训人员可以完全访问培训版本库

[TrainingRepos:/]

@training = rw

 

下面我们来配置我们的authz文件:

[root@singledb conf]# cat authz

[groups]

admin = dave

dev=tianlesoftware

[davesvn:/]

@admin = rw

@dev = rw

[root@singledb conf]#

 

 

2.4 启动和停止SVN服务

(1)启动SVN服务:

[root@singledb conf]# svnserve -d -r /u02/svn

       -d表示后台运行

       -r 指定根目录是 /u02/svn

[root@singledb conf]# ps -ef | grep svn

root      4592     1  0 18:04 ?        00:00:00 svnserve -d -r /u02/svn

root      4594  3709  0 18:04 pts/1    00:00:00 grep svn

(2)停止SVN服务:

ps -aux |grep svn

kill -9 进程杀掉

 

Windows环境下本地SVN服务器搭建完整指南 SVN(Subversion)是一种集中式版本控制系统,通过中央仓库统一管理文件变更历史,适用于对权限控制和流程规范要求较高的开发场景。其核心工作模式基于“检出-修改-提交”循环,支持原子性提交、版本回溯与分支管理,确保团队协作中的数据一致性。svn checkout http://localhost/svn/project # 检出代码示例svn commit -m "Initial commit" # 提交更改命令。 阅读详情

相关推荐

STM32与小米CyberGear微电机的CAN通信协议深度解析

本文深度解析STM32与小米CyberGear微电机的CAN通信协议,涵盖硬件连接、CAN总线配置、通信协议解析及多电机协同控制。重点介绍了基于STM32的电机控制实践,包括运动模式、速度与位置模式设置,以及数据反馈与故障诊断,为机器人及自动化设备开发提供实用指南。

www00的博客 360

linux下svn服务器搭建及使用

linux下svn服务器搭建及使用(包含图解): https://blog.youkuaiyun.com/u011280484/article/details/50499534

酒酿小圆子呀~ 1万+

2023电赛B题实战解析:基于立创天空星开发板的同轴线缆长度与负载测量系统

本文详细解析了2023年全国大学生电子设计竞赛B题的实战方案,重点介绍了基于立创EDA天空星开发板(STM32F103)的同轴线缆长度与负载测量系统。文章深入剖析了两种核心测量方案,并推荐了更稳定易实现的NE555测电容法,提供了从硬件选型、电路设计到软件编程、参数标定的完整“施工图”,实测精度可达厘米级和皮法级,为电赛复现与高精度测量学习提供了清晰指导。

weixin_36303305的博客 232

Linux下搭建SVN服务器

Linux下搭建svn

咿呀的博客 3001

SIwave:在 SIwave 中释放计算频率扫描的强大功能

AEDT 的电路工具允许注入正确的电压和电流。要使用电路工具,SIwave 必须首先使用 PI 求解器求解结构的 S 参数。

jkh920184196的博客 1476

USB之ch376s数据手册

         最近师兄交给我一个项目,虽说刚学嵌入式起步,但上手一个项目怎说都是最好的快速学习方式。因为刚了解ch376s管理U盘的数据,所以先是看了ch376s的数据手册。那我就把数据手册直接放上来吧。。。。      1、概述 CH376 是文件管理控制芯片,用于单片机系统读写 U 盘或者 SD 卡中的文件。 CH376 支持 USB 设备方式和 USB 主机方式,并且内置了 USB 通...

iBGG的博客 6003

Linux下的SVN服务器搭建

svnserve.conf文件19行anon-access属性前有个空格,去掉前面的空格再次访问又报“认证失败”,检查了一下配置文件,发 现authz文件的[groups]没有指定访问资源路径,在[groups]下面增加了"[/]"(访问所有资源,也可以指定文件夹,如[/svn/资 料]),问题终于解决了。大多数网络资料,都会让大家将authz-db = authz这条给去掉注释,经过我本人多次被坑经验,此条去掉后,虽然svn服务器可以连接,但一直会提示“认证失败”,注释掉即可正常。

满脑子灵感的专栏 2196

【目标检测】IoU(交并比)详解及代码实现

1. IOU概述        IoU的全称为交并比(Intersection over Union),是目标检测中使用的一个概念,IoU计算的是“预测的边框”和“真实的边框”的交叠率-,即它们的交集和并集的比值。最理想情况是完全重叠,即比值为1。 2. IoU计算        IoU等于“预测的边框”和“真实的边框”之间交集和并集的比值。IoU计算如下图,B1为真实

Roaddd的博客 2万+

[软件部署] Linux部署SVN

我们详细探讨了在 Linux 系统上安装和配置 Subversion(SVN)的过程。从基础的安装命令到仓库的创建,再到 防火墙 的配置,协助你在本地检出。

越发感受自己知识的渺小,希望能够把自己遇到的问题和大家一起交流,如有不对之处,请斧正。 3356

网规第三版:第4章网络资源设备(完结)

第 4 章 网络资源设备 调整内容: 更新主流网络设备(交换机、路由器、防火墙)的技术参数与选型标准 增加国产化网络设备与信创产品的相关内容 精简已淘汰的设备类型与技术指标

鹿鸣天涯 267

SkillClaw:让大模型 Agent skill在多用户生态中实现群体进化的框架

随着大模型应用步入深水区,基于 LLM 的智能体(Agent)正从单一的“沙盒玩具”转变为处理真实世界复杂任务的生产力工具。然而,现有的 Agent 系统通常面临一个致命瓶颈——部署即固化。为了解决这一问题,最近有一篇新论文**《SkillClaw: Let Skills Evolve Collectively with Agentic Evolver》**提出了一种多用户生态 Agent 群体进化框架。

kakaZhui的博客 263

二、SVN服务器的搭建和基础配置——Linux服务器篇

SVN服务器的搭建和基础配置 ——Linux环境 IT项目管理的第一步就是文档的管理。文档包括需求文档、详细设计文档、源代码、测试用例等等。对文档的管理,主要工作就是对文档版本的管理。 Subversion(SVN)就是一个最常用的版本控制系统,本文主要提供一个简易的安装指南。 一、下载软件 1、apr-1.4.6.tar.gz 2、apr-util-1.4.1.tar.gz 下载地

tbkken的专栏 992

无迹卡尔曼滤波 (UKF, Unscented Kalman Filter) 算法详解及案例分析

无迹卡尔曼滤波是一种用于估计非线性系统状态的递归算法。其目标是通过结合系统模型和观测数据,估计系统的最优状态。

闲人编程的博客 2625

svn服务器拷贝文件夹下,Liunx下SVN服务器搭建:基础搭建

Liunx下SVN服务器搭建:基础搭建,SVN是常用的版本控制管理工具,虽然SVN跟现在流行的Git比起来有很多的限制,但相对于简单一些或者小型的项目而言,SVN完全能够胜任,那这几篇文章会写如何在Linux服务器下搭建SVN的教程,仅作为参考!安装步骤如下:1、安装yum install subversion2、查看安装位置rpm -ql subversion我们知道svn在bin目录下生成了几...

weixin_39611037的博客 184

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

一、SVN服务器的搭建和基础配置——windows服务器篇

SVN服务器的搭建和基础配置 ——windows环境     IT项目管理的第一步就是文档的管理。文档包括需求文档、详细设计文档、源代码、测试用例等等。对文档的管理,主要工作就是对文档版本的管理。     Subversion(SVN)就是一个最常用的版本控制系统,本文主要提供一个简易的安装指南。 一、下载软件:     1、httpd-2.2.22-win32-x86-no_ssl

tbkken的专栏 1022

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

svn服务基础学习与搭建,使用

SVN 跨平台,开源版本管理工具 集中管理(文件服务器) SVN会备份并记录库的修改与变动。常用版本管理软件 VSS,CVS,SVN,GITSVN与GIT SVN是一个版本库 开发人员上提交SVN缺点 1、无网无法连到库 2、无法查看代码历史版本的变化。 3、SVN的备份要备份所有代码数据以及所有更改的重酬记录。 4、每次提交都保留一个原始副本。SVN库会增多 5、不适合开源...

weixin_34278190的博客 122

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SVN服务器本地搭建与使用

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6623026.html 使用SVN进行代码管理,需要搭建服务端资源库,然后在使用SVN的电脑安装SVN客户端或者在Myeclipse集成SVN插件来下载资源库项目或提交项目修改。下面分步讲解: 1:下载SVN服务端软件并安装 下载地址:http://subversion...

a631278993的博客 159

1_SVN简介及环境搭建

本节对SVN 的工作流程和原理进行了简单的介绍,也搭建好了SVN的环境,其实实际中主要是在服务器端的环境。而客户端使用的是TortoiseSVN,会在后序文章中给出介绍。

ABNER的专栏 660

centos搭建svn

一、SVN简介和工作原理subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但较多安装在linux下。svn服务器有两种运行方式:独立服务器和借助于apache。 svn://或http:// svn客户端tortoisesvn svn的基本工作原理: 在一台服务

qq_22989777的博客 274

怎样创建SVN服务器

Ubuntu上部署SVN代码服务器

ABSea的博客 732

SVN的搭建

参考(1): SVN服务器搭建和使用(一) SVN服务器搭建和使用(二) SVN服务器搭建和使用(三) TortoiseSVN客户端重新设置用户名和密码 参考(2): http://laodaobazi.iteye.com/blog/905058 转载于:https://www.cnblogs.com/sunminmin/p/4177665.html...

weixin_30363817的博客 85

SVN的使用

SVN的使用SVN简介SVN服务器搭建和使用下载与安装使用建立版本库建立用户和组,分配权限客户端SVNTortoiseSVN图标介绍TortoiseSVN Client基础操作SVN检出(SVN Checkout)增加(Add)删除(Delete)改名(Rename)SVN还原(SVN Revert)检查更新(Check for modifications)SVN更新(SVN Update)SVN提交(SVN Commit)显示日志(Show log)版本库浏览(Repo-browser)创建分支合并相互操

Miger的博客 240

Linux搭建SVN仓库(一)

刚做开发得分时候一直用的是GIT去管理代码,来到新公司快一年了,这边用的是SVN,写一篇较为详细的SVN搭建过程; 一、准备条件 服务器一台(本文以centos7 为例) 二、准备操作 因为一些linux发行版本上会自带的有Subversion(SVN),所以你可以先检验一下你的服务器是否已经安装了SVN; 检验方式:命令行输入 svn --version 没有安装会出现:bash...

wqzbxh的博客 230

阿里云搭建ubuntu svn 16.04服务器的坑

1. 基础搭建参照 https://www.cnblogs.com/lovechen/p/5716213.html 2. 按照配置正常执行完后,telnet 阿里云ip 3690 如果不通,需要检查linux服务器的防火墙,还有阿里云的安全组规则,新建一个tcp 3690端口的入站规则 3. SVN地址的坑 ubuntu服务器的目录路径: /home/svn/root_dir,这个是服...

布偶猫的博客 337

myclipes 配置php,如何使用myclipse 的 SVN和搭建SVN服務器

今天我突然要用到SVN,就將步驟寫下來請大家參考。下載myeclipse的內置svn插件。地址:http://download.youkuaiyun.com/download/qq_34926773/9965314如果你還想用你的電腦搭建服務器,看這↓下載svn sever安裝程序,地址:http://download.youkuaiyun.com/download/qq_34926773/9965402安裝SVN插件:...

weixin_28698129的博客 99

svn服务的搭建与管理

svn服务的搭建与管理一、svn的概述1svn概述 Svn是一款版本管理工具,一个跨平台的开源的版本控制系统,会将数据放在一个中英资料档案库中,类似FTP工具。Svn档案库会备份修改并记录每个文件每一次的修改更新变动。2、其他的常见的版本管理工具:vss、cvs、git3、svn与git的区别(1)svn集中版本控制系统: Svn版本控制系统是集中式的数据管理,存在一...

weixin_34194702的博客 198
上一篇: svn命令相关
下一篇: 编译php时遇到的错误
willjay01
博客等级 码龄12年 3粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值