Linux中安装并配置SVN

来源:互联网 发布:大数据行业工资 编辑:程序博客网 时间:2024/06/01 18:16

引言

在Linux服务器上搭建svn服务,网上有很多,杂七杂八混在一起,找到一篇详细点的好文章不易于大海捞针啊哭,只好自己动手,丰衣足食,以备不时之需,也希望能帮助更多的人!特记录如下微笑,以 centos 为例

一、测试svn是否安装

rpm -qa subversion 如果安装输入之后会出安装的版本,也可以通过svnserve --version 查看版本来确定

二、如果安装查看svn的仓库信息

ps -aux | grep svnserve可以查看版本仓库的信息,例如各仓库的路径、端口等

三、如果没有安装svn

yum -y install subversion这里为了简便直接使用yum安装,源代码编译安装后续会加上

四、检查svn是否成功安装

svnserve --version 通过查看版本号确定是否安装成功了

成功安装之后会在/usr/bin 目录下生成几个二进制文件分别为 svn、svnadmin、svndumpfilter、svnlook、svnserve、svnsync、svnversion

命令用法都可以用命令加--help 查看,如svn --help

五、创建版本库目录

mkdir -p /www/svndata/svnname建立版本库目录

svnadmin create /www/svndata/svnname建立svn版本库(就是上面建立的目录)

建立版本库时,如果已有运行的svn仓库,请把版本库建立在已运行的仓库中,不然就需要加端口启动和链接了

六、配置svn

vi /www/svndata/svnname/conf/svnserve.conf 编辑上面建立的版本库中的配置文件

只修改下面列出配置即可

[general]

anon-access = none # 禁止非授权用户访问

auth-access = write # 给授权用户拥有写权限

password-db = /www/svndata/svnname/conf/pwd.conf # 用户密码文件路径

auchz-db =/www/svndata/svnname/conf/authz.conf # 用户授权文件

realm = svnname # 认证命名空间,subversion会在认证提示里显示,且作为凭证缓存的关键字

--------------------------------------------------------------------------------------

vi/www/svndata/svnname/conf/pwd.conf 编辑用户密码文件(如在 conf 下不存在pwd.conf 请自己创建)

[users] # 在这行下面编辑,格式如下,一行一个
user1 = pwd1
user2 = pwd2

user3 = pwd3

user4 = pwd4

--------------------------------------------------------------------------------------

vi/www/svndata/svnname/conf/authz.conf 编辑用户授权文件(如在conf下不存在authz.conf请自己创建)

可按组授权

[groups] # 在这行下面编辑,格式如下,一行一组,每组中用户名以逗号分隔

group1 = user1,user2

group2 = user3,user4

[svnname:/log] # 对项目路径 /log 设置权限。组group1 有读写权限,组group2 有读权限。svnname:/ 可以理解为项目根目录

@group1 = rw

@group2 = r

[svnname:/upload] # 对项目路径 /upload 设置权限。组group1 有读写权限,其余人有读权限。* 表示排除组 group1 的其他人

@group1 = rw

* = r

或给用户直接授权

[svnname:/] # 表示项目根目录,也可直接写 [/]

user1 = rw

user2 = rw

user3 = r

user4 = r

注:如果项目不需要配置的这么复杂,就几个人协同开发的话,就直接给[svnname:/][/] 设置权限即可

到此,svn配置部分已经搞定,可以小小兴奋一下了~~

七、启用svn仓库

svnserve -d -r /www/svndata/

八、导入文件到版本库

svn import mytree file:///www/svndata/svnname/some/project -m "Initial import" mytree 是要添加的目录

九、客户端链接检出

链接地址为 svn://服务器ip/版本名

十、数据同步到web目录

原理是当客户端svn commit 时会触发 post-commit 插件钩子,在 /www/svndata/svnname/hooks/ 下面有很多插件钩子,把post-commit.tmpl 复制一份名称改为post-commit 并清空里面代码,加入以下代码

#!/bin/sh
export LANG=zh_CN.UTF-8
/usr/bin/svn update --username user1 --password pwd1 /www/svnname --no-auth-cache

插件钩子做好了,但这样还不行,因 /www/svnname  与版本库不对应,这时必须执行以下代码检出,才可以保证两个版本相同

cd  /www    切换到放置 web 的根目录

svn co svn://svn服务IP/svnname    检出文件到web目录

这样就可以当程序员提交文件到版本库自动备份到web目录了~~~,吼~~~~~

至此,svn配置就全部搞定!啦啦啦~~~~啦啦啦~~~~~

十一、结束语

累、好累、非常累。。。。。



注:转载请注明出处。如有不正确之处请指出!





2 0
原创粉丝点击