linux(centos) 下搭建svn服务器

 1. 使用yum安装svn

yum -y install subversion

安装完成之后,验证安装结果

 

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行

若需查看svn安装位置,可以用以下命令:

rpm -ql subversion

2. 新建仓库目录

在/home目录下面创建一个svn目录,用来作为svn存储目录,目录可以自己指定其它的,命令如下

mkdir  /home/svn

3. 创建一个测试仓库

执行以下命令 创建一个仓库

svnadmin create /home/svn/sztf

此时仓库以及创建好了,我们先进入仓库的目录看看有什么

cd /home/svn/sztf

ll命令查看目录

关于仓库文件的说明:

hooks目录:放置hook脚步文件的目录

locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

format目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号

conf目录:是这个仓库配置文件(仓库用户访问账户,权限)

注意:subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置,不修改也没关系!笔者就是没有修改,没有进一步深度研究,知道这个作用的也可以告知一下。

附:我们可以把sztf这个项目中conf中的authz和passwd两个文件拷贝到svn仓库的根文件夹中去,也就是/home/svn下,这样整个svn就共享用户数据和配置信息了,当然,你也可以放到每个项目中去,以下就是按照没有共享用户配置的方式去实现

如果配置共享用户 如下:

anon-access = none //禁止匿名访问 

auth-access = write 

password-db = /usr/svnhome/passwd //统一使用密码文件 

authz-db = /usr/svnhome/authz 

realm = project1 //权限域名,很重要,写你的工程名

参考url:https://www.cnblogs.com/zwue/p/4953541.html

以上【附】部分不感兴趣的,可以忽略掉

4. 配置sztf项目中的svnserver.conf

进入到conf下的svnserve.conf 编辑这个配置文件

vim conf/svnserve.conf

按I 进入编辑模式

在svnserver.conf文件中,anon-access前面的注释去掉,将对应的值设置为none,将auth-access前面的注释也去掉,将password-db前面的注释也去掉,还有将authz-db前面的注释也去掉,显示如下:

最重要的一点,去掉注释之后,配置项前面不能有空格

修改完成后按esc退出编辑模式,然后按:wq(冒号加wq)命令 强制保存并退出

5. 配置访问的用户及密码

在conf目录下有个passwd文件,接下来编辑passwd文件,在文件的末尾加上自己需要添加的用户名和密码,passwd负责账号和密码的用户名单管理

显示如图:

注意:用户和密码都是明文显示的,=号前后都有个空格,我也是按照上面提供的样例来的,可以试试不带空格,应该没什么问题

6. 配置新用户的授权访问的文件

authz文件负责账号权限的管理,控制账号是否读写权限

编辑authz文件,在该文件中追加如下内容:

[/]
zhangsan=rw
lisi=rw

注意:前面有个[/]    

r 读权限    w 写权限

[/]这个中括号可以写具体的仓库的名称,如[/sztf],这样就配置的是本仓库的权限,但是我们按照一个库一套配置的话,就没必要了,我直接建议就这么写[/],这样避免出错

7. 启动svn服务

svnserve -d -r /home/svn

其中-d表示后台运行, -r指定根目录,这里需要注意:绝对不能将启动命令写成:svnserve -d -r /home/svn/sztf  只需要启动总的svn根目录就行

还有启动的时候可能会出现如下错误:

 这个是由于已经启动了SVN服务,所以需要先关闭进程,重新启动即可,命令如下:

killall svnserve
svnserve -d -r /home/svn

 也可以用 kill -9 端口号  来杀死进程 

8. windows系统拉取代码

本地要先按照svn客户端,没有安装的话,请自行百度安装了

安装完成了

在本地客户端迁出输入url:svn:123.12.55.89/sztf

输入用户名密码即可

注意:svn使用的是3690端口,如果是云服务器,比如是阿里云的,还需要上云服务器开通端口,然后在服务器本地防火墙也开通

/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT 

参考文献:https://www.jianshu.com/p/e7037e010635?utm_source=oschina-app

原文地址:https://www.cnblogs.com/fj99/p/13921117.html