由于在公司要维护阿里云的linux服务器,我们的svn服务器就安在阿里云上面。所以经常会涉及到svn的维护操作。离职的时候编写交接文档,刚好有充足的时间写一篇说明介绍,此说明纯原创,不是从网上复制,手工根据个人理解写出来的。

这里用作备忘,网络形式就是方便查阅。

1、 如何创建一个新的版本库

如果需要新开一个项目。需要创建一个新的库,登录到shell,使用如下命令

svnadmin  create 版本库目录位置

说明,svnadmin是svn自带的命令工具。后面的create表示参数(创建)

目前我们所有库的位置在:/data/svnrepos/,如下所示

一个文件夹就是一个库,要创建一个库,就相当于创建一个文件夹(当然得用svn的svnadmin来生成)

示范:我需要创建一个方维团购的版本库

svnadmin create /data/svnrepos/fanwei/

结果:会创建一个fanwei的文件夹,文件夹里面带有 conf、db等子文件夹,如下图

其他人员访问此版本库的路径为:”svn://服务器地址/版本库名称”

svn://服务器地址 /fanwei

2、 配置新版本库的权限帐号

 

详细请参考网络文章

分别在版本库目录下的conf文件夹下,钩子文件在hooks目录下。

关于权限配置这一块,都是遵循svn软件本身的约定。不涉及特殊化环境,所以都是公共约定好的目录,不能去修改目录本身。所以基本上大体看一下网络资料,都有详细的介绍。

2.1关于添加帐号了解几个概念。

以下概念就是关系到设置权限帐号的部分,几个关键性概念如下:

  • 每个库都有单独的conf文件。也就是单独的帐号,所以需要每建一个新库,就得往这个库中新建一些帐号。这点确实有点麻烦,据说还可以设置一个全局的,设置这些帐号是针对所有库生效,这样子不需要每次新建一个库都得新加一批帐号。由于之前不知道,所以目前使用的是第一种方式。需要设置全局,参考网络文章进行修改。
  • 每个库目录下面都有conf、db、hooks、locks几个目录。conf目录看后面有介绍。db是这个库的数据,也就是每次修改的代码存储在里面,直接去看是看不到内容的。hooks是钩子,比如post-commit钩子。format文件暂时不清楚用途。我们经常设置用到的目录是conf和hooks。

比如xe这个库,我们看到目录结构如下

切换到xe这个目录下去会看到下面的子目录如下

  • 修改配置文件是即时生效的,也就是说,当往配置文件中增加增加或修改帐号后,并不需要重启svn服务器, 这点是很肯定的。可能,svn每次连接认证都是直接读取磁盘上的配置文件来判断帐号权限,并不像php引擎等的配置文件是加载在内存中,修改配置则需要让服务重新加载配置文件(毕竟同时使用svn用户不可能很多,频繁读取磁盘不存在到性能瓶颈)。了解这一点后,当手工配置权限出现问题时,不需要怀疑:是不是没有重启svn服务导致配置文件没有重新被加载,所以没生效? 此知识点可以避免无效的折腾。先找其他原因,可能是配置文件本身没有配对。

2.2conf所在的目录下的几个文件介绍

  • passwd文件定义了本库下面有哪些帐号。所以需要新加帐号先往里面加
  • authz文件控制哪些帐号访问本库的权限,这些帐号来源于passwd文件
  • svnserve.conf 是一个全局配置文件。其实它里面就是载入passwd和authz文件

当然自己可以修改决定自己使用哪个文件,默认载入是passwd和authz文件。这个配置文件里面还有几个关键项,如下

我带有中文注释(服务器上也有这个注释,当新建一个库的时候,其实直接拷贝这个文件来用)

备注:auth-access = write 这里注意一下。以前我以为设置读写权限,要填写”write,read”才行。实际上是,带有write权限,就表示默认带有read权限了(因为默认只有先能读才能进行写)。所以填写的值要么是write要么是read,一般设置为write。

2.3以xe项目的版本库为例。下面是库的所在目录

去conf目录下(在shell模式下使用cd或者ftp方式进入都可以)

打开passwd文件,内容如下

格式为:”帐号名=密码”,新加一个帐号,就加一行

打开 authz这个文件,以配置帐号对本库的权限,authz文件的内容如下

#符号后面都是注释部分。不用理

对于内容几点说明如下:

  • “xegroup = a,b,c” 定义一个用户组,组里面的成员(帐号)来源于passwd文件中的帐号
  • @xegroup = rw 就是定义前面定义的组拥有什么权限。rw表示读写。r为读,w为写。

“*=”中的*表示匿名帐号,右侧的空表示没有任何权限。结果就是,匿名帐号对本版本库没有任何权限。

3、 钩子无法更新到测试网站的问题

用命令切换到测试网站目录

cd /data/source_test/test.xeshh.com/

看是哪个文件,继续切换到对应文件目录下去

手动删掉文件:rm –rf 文件路径

然后使用更新命令

svn update

此命令相当于将svn服务器的重新下载到当前目录(也就是测试环境)

备注:需要哪个目录下的文件,就切换到哪个目录去

svn的管理与维护要点—纯手工编写的更多相关文章

  1. 纯手工编写的PE可执行程序

    [文章标题]: 纯手工编写的PE可执行程序[文章作者]: Kinney[下载地址]: 自己搜索下载[使用工具]: C32[操作平台]: win 7[作者声明]: 只是感兴趣,没有其他目的.失误之处敬请 ...

  2. APICloud开发者进阶之路 |纯手工编写日程表功能

    本文出自APICloud官方论坛, 感谢论坛版主 赵永亮 的分享. 最近看论坛内关于极光推送的问题有很多, 本想写一个关于极光的详细教程的,无奈已经有很多大牛分享过了,所以只得纯手工写了一个日程表,可 ...

  3. 【纯手工】整理豆瓣热点推荐列表-财经&自我管理

    [纯手工]整理豆瓣热点推荐列表-财经&自我管理  简七君 2013-10-27 09:40:06     豆瓣君的首页热点推荐实在难以捉摸,只有正好跳出推荐贴时才能按图索骥找列表.简七和小伙伴 ...

  4. SVN权限管理

    转自:http://www.cnblogs.com/xingchen/archive/2010/07/22/1782684.html /******************************** ...

  5. 测试思想-流程规范 SVN代码管理与版本控制

    SVN代码管理与版本控制 by:授客 QQ:1033553122   欢迎加入软件性能测试交流群(QQ群):7156436   目录 一. 二. 三. 四. 五. 六. 七. 一. 创建根目录 创建一 ...

  6. Oracle RAC管理及维护命令详解

    Oracle Clusterware的命令集可以分为以下4种: 节点层:osnodes 网络层:oifcfg 集群层:crsctl, ocrcheck,ocrdump,ocrconfig 应用层:sr ...

  7. HTML5+CSS3+Jquery实现纯手工的垂直时光轴【附源码】

    前言 由于工作中需要,系统中需要记录不同时间发生的事件,为了提升用户体验,决定用时光轴来实现.[据说这个东西挺火的,QQ空间和FB都在用...] 这个时光轴是在 三生石上 这位博主的时光轴基础上修改的 ...

  8. eclipse中搭建svn开发管理环境

    1.准备好资源 subversive,若是离线安装,已为大家准备好:http://pan.baidu.com/s/1hrbXH9y(本人喜欢离线安装,在线安装就不在此说了,其实只要一种方法简单的方法能 ...

  9. SVN分支管理策略个人见解

    本篇目录 前言 SVN分支管理策略 VisualSVN Server TortoiseSVN客户端 Repository的创建 Check out trunk创建新项目MyProject trunk更 ...

随机推荐

  1. MVC ASP.net流程 源代码分析

    AppDomainFactory.cs 1. public Object Create(String appId, String appPath) public Object Create(Strin ...

  2. Android M Permission 学习笔记

    Android应用权限简要介绍 一个Android应用默认情况下是不拥有任何权限的, 这即是说, 在默认情况下, 一个应用是没有权利去进行一些可能会造成不好影响的操作的. 这些不好的影响可能是对其它应 ...

  3. 基于HTML5的Web跨设备超声波通信方案

    前言:Chirp在iPhone上掀起了有声传输文件的序幕,我们再也不需要彩信.蓝牙配对.IM来传送数据.它通过“叽叽喳喳”的小鸟叫声来分享数据,简单有趣,而且可以快速的实现一对多的分享. 此外支付宝曾 ...

  4. ICMP type code 对应表(转)

    ICMP类型 TYPE CODE Description Query Error 0 0 Echo Reply——回显应答(Ping应答) x   3 0 Network Unreachable——网 ...

  5. Netty4 中的内存管理

    在Netty4中引入了新的内存管理机制极大地提升其性能,本文将对该内在管理机制进行剖析. 这里有篇文章讲述了在推特(Twitter)内部 使用Netty的状况以及Netty4所带来的性能收益. 在分析 ...

  6. rm: 无法删除"/run/user/root/gvfs": 是一个目录 问题

    2013-03-02    bxd@linux:~$ sudo su [sudo] password for bxd:  root@linux:/home/bxd# exit exit rm: 无法删 ...

  7. Legolas工业自动化平台入门(二)数据响应动作

    在上一篇文章Legolas工业自动化平台入门(一)搭建应用里,我们简单地提到了"动作"的概念.不清楚的童鞋不要着急,这篇我们就来介绍如何在Legolas平台上添加动作,并应用动作. ...

  8. 论文第4章:iOS绘图平台的实现

    面向移动设备的矢量绘图平台设计与实现 Design and Implementation of Mobile Device-oriented Vector Drawing Platform 引用本论文 ...

  9. swift实现冒泡排序

    刚刚坐着没事干,就用swift语言写了写冒泡排序,还望高手指点.拍砖!哈哈! 废话不多说,上代码! import Cocoa var array = [,,,,,,,,,,,,,,,,,] print ...

  10. Android View中的控件和监听方法...

    PS:居然三天没写博客了...今天补上...东西虽多,但是都是一些基础...代码多了一些,有人可能会这样问,粘这么多代码有毛用..其实对于一个Android的初学者来说,一个完整的代码是最容易帮助理解 ...