svn安装和配置

时间:2021-11-09 22:07:17

安装svn

参考http://blog.csdn.net/dl425134845/article/details/41978541

系统版本

uname -a # 查看内核/操作系统/CPU信息

head -n 1 /etc/issue # 查看操作系统版本

yum软件仓库找到SVN安装包安装

中间会列出要关联的包,并提示下载:输入“y”并确认

yum list *svn*

yum install subversion

成功

查找svn位置 查看SVN 命令 和版本和

svn help   或者 svn --help

svn --version

svnadmin --version

find / -name svn

创建目录存放版本库

cd /

mkdir /svndata

创建版本库1 wxshop

svnadmin create /svndata/wxshop

创建版本库2  xiaocx

svnadmin create /svndata/xiaocx

配置信息1

cd /svndata/wxshop/conf

这里面有3个文件,分别为authz、passwd、svnserve.conf;

主要就是修改其中配置,可以统一把所有配置集中一起,也可以各自配置。

以下就是统一配置

配置信息2

mkdir /svndata/svnconf

===

创建一个svn统一管理

配置信息3

cp /svndata/wxshop/conf/authz /svndata/svnconf/

cp /svndata/wxshop/conf/passwd /svndata/svnconf/

rm -rf /svndata/wxshop/conf/authz

rm -rf /svndata/wxshop/conf/passwd

==========

把配置,账号密码,权限等配置集中一起

首先先将authz和passwd这2个文件复制到/usr/local/svnconf目录下;

删除当前目录(/usr/local/svndata/wxshop/conf)下的authz、passwd;

修改当前目录(/usr/local/svndata/wxshop/conf)下的svnserve.conf;

配置信息4,svn仓库修改参数

vim /svndata/wxshop/conf/svnserve.conf

[general]

anon-access = none # 使非授权用户无法访问

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

password-db = /svndata/svnconf/passwd  # 指明密码文件路径

authz-db = /svndata/svnconf/authz    # 访问控制文件

http://www.cnblogs.com/shaohuixia/p/5532448.html

svnserve.conf

各参数功能在配置文件的注释中有说明, 此处配置如下:

[general]

anon-access = none # 使非授权用户无法访问

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

password-db = /opt/svndata/repos/conf/passwd  # 指明密码文件路径

authz-db = /opt/svndata/repos/conf/authz    # 访问控制文件

realm = /opt/svndata/repos   # 认证命名空间,subversion会在认证提示里显示,并且

配置svn用户   :passwd文件

vim /svndata/svnconf/passwd

[users]

XXX123 = wjb123

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

[users]

<用户1> = <密码1> admin = admin

<用户2> = <密码2> username2 = password2

可以添加多个,此为用户名密码对。

配置权限 :authz文件

vim /svndata/svnconf/authz

[groups]

admin = xxx123,wjbsw

[/]

@admin = rw

[wxshop:/]

@admin = rw

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

意思是,用户组admin,有用户,wjb123和wjbsw两个用户

[/],根目录。也就是对于/svndata根仓库,也就是所有仓库

@admin = rw   这个组有读写权限

[wxshop:/]  只对于wxshop仓库

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

配置权限 :authz文件

指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:

<!--[if !supportLineBreakNewLine]-->       用户组格式:

[groups]

<用户组名> = <用户1>,<用户2>

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:
    [<版本库>:/项目/目录]
    @<用户组名> = <权限>
    <用户名> = <权限>
    其中,方框号内部分可以有多种写法:
     /,表示根目录及以下。根目录是svnserve启动时指定的,我们指定/opt/svndata。这样,/就是表示对全部版本库设置权限。
     repos1:/,表示对版本库1设置权限
     repos2:/abc, ,表示对版本库2中的abc项目设置权限
     repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限
     权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

重点是修改这4个参数

anon-access = none

auth-access = write

password-db = /usr/local/svn/passwd    //这也是为什么上面讲passwd复制到/usr/local/svn路径下的原因

realm = XXXXX   //这是svn连接时的提示信息

启动SVN

/usr/bin/svnserve -d -r /svndata/

//注意,这里只输入到版本库的父母录即可,这样会加载里面所有的版本库

netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)

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

如果找不到,find / -name svn

(输入命令:svnserve -d -r /usr/local/svndata )                    //注意,这里只输入到版本库的父母录即可,这样会加载里面所有的版本库

更新线上web网站代码到svn

切换路径至/usr/local/svndata/repos1/hooks

复制post-commit.tmpl文件并且命名为post-commit,   命令如下

cp post-commit.tmpl  post-commit

修改post-commit文件的属性,增加可执行权限,            命令如下:

chmod -R +x post-commit

修改post-commit文件,,在末尾添加如下内容,把末尾几行没有注释掉的注释掉,修改内容如下:

WEB= /home/wwwroot/website1/                     //这里指向的是你web发布存放代码的路径

export LANG=en_US.UTF-8

/usr/local/svn/bin/svn update $WEB --username 用户名 --password '密码'

至此版本库1修改完毕,同样修改版本库2,

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

服务器上检出

svn checkout svn://120.77.40.225:/wxshop /home/wujunbin/www

也有一种是把端口号也写上的svn checkout svn://120.77.40.225:3690/wxshop /home/wujunbin/www

http://www.cnblogs.com/fengbohello/p/4548580.html

=========

./svn co svn://本机ip地址/repos1   /home/wwwroot/website1

./svn co svn://本机ip地址/repos2   /home/wwwroot/website2

关闭SVN,方法如下:

查看svn进程是否已经启动,ps -ef|grep svn    ps -ef|grep svnserve

netstat -ntlp

然后输入 kill -9 进程号 杀死该进程

重新指定一个端口号(默认端口3690)

svnserve -d --listen-port 3691 -r /opt/svndata/repos

卸载svn

yum remove subversion

svn错误svn: Can't connect to host '120.77.40.225': Connection refused

启动SVN

切换到/usr/local/svn/bin目录下

输入命令:svnserve -d -r /usr/local/svndata                      //注意,这里只输入到版本库的父母录即可,这样会加载里面所有的版本库