由于在公司要维护阿里云的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. Arduino 学习

    Arduino 背景可以参考官方网站www.arduino.cc 先看一个最简单的示例程序: 打开 Arduino IDE , 选择菜单:文件 -> 示例 -> 01.Basics -&g ...

  2. 我也要学iOS逆向工程--函数

    大家好,这篇我开始学习函数了.先学 C 函数,然后再 OC 的吧.OC 应该复杂点的吧. 然后看看汇编情况哦! 学习函数呢,肯定要弄清楚几个事情. 1.跳转地址. 2.返回地址 3.参数 4.函数获取 ...

  3. NSURLSession与AFNetworking3.0

    下面是用GET方式请求一个页面数据的示例: AFNetworking 2.x NSString *siteUrl = @"http://webinar.ofweek.com/readDemo ...

  4. FFmpeg编译出错_img_convert 找不到

    问题出现在下载的ffmpeg的版本不一样,在0.4.8以前的版本中还有img_convert这个函数,新版本中用sws_getContext和sws_scale代替了.简单说明如下: 新版本的ffmp ...

  5. [原]Android打包之跨平台打包

    Android自动打包流程详细图: 在前面一些博客我们知道了如何通过命令行打包,如何通过Eclipse打包,如何通过编写shell脚本来进行打包,但是这些都不能很好的跨平台进行打包. 因Python本 ...

  6. Ubuntu 14.04 载入 JWS 或 访问 jsp异常的解决方法

    前段时间在Ubuntu 14.04中使用 Chrome登录 Webex准备面试的时候发现无法进入在线面试.搞笑的是前一天尝试进入 Webex的时候还一切正常,不过当时Webex的在线面试没有开始.等到 ...

  7. IIS崩溃时自动抓取Dump

    背景:在客户现场,IIS有时会崩溃,开发环境没法重现这个bug,唯有抓取IIS的崩溃是的Dump文件分析. IIS崩溃时自动抓取Dump,需要满足下面几个条件 1.启动 Windows Error R ...

  8. Session丢失的解决办法小结

    最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里.最后使用存储在StateServer中的办法解决了问题. SessionState ...

  9. Android代码优化工具——Android lint

    作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常 ...

  10. SmartDoc(YUIDoc) 注释编写

    上面介绍了JS文档和Demo生成工具SmartDoc,本篇开始介绍一下注释的编写.SmartDoc使用的是YUIDoc的引擎,所以的注释规则都一样,先简单介绍下YUIDoc的注释编写. 编写注释是一个 ...