安装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 //注意,这里只输入到版本库的父母录即可,这样会加载里面所有的版本库