举杯邀月

linux服务器svn的搭建与使用

摘要:linux上svn的搭建与使用,svn是一个开放源代码的版本控制系统,用于多个人共同开发同一个项目,共用资源的目的。

SVN是Subversion的简称,是一个开放源代码的版本控制系统,用于多个人共同开发同一个项目,共用资源的目的。
第一次使用svn感觉很是神奇,觉得深不可测的感觉,其实只是被他的外表迷惑了,我们一起来揭开他神秘的面纱,建立一个属于自己的版本库

首先我们安装svn服务

yum install subversion
1
1
1
1
1

svn是基于版本库进行管理文件的,我们需要建立自己的版本库。

svnadmin create /home/svn/blog
1
1
1
1
1

后边是版本库的路径,blog是版本库的名称,可以根据自己的项目任意修改名字。
执行完这一步,/home/svn中将存在blog文件夹,这个项目的配置都在 /home/svn/xcf/blog 中
然后我们设置版本库的权限,不然你的项目谁都能去访问去修改 svnserve.conf是主配置文件

vi/home/svn/blog/conf/svnserve.conf
anon-access=none            # 匿名可读
auth-access=write           # 验证用户可读写
password-db=passwd          # 指向验证用户名密码的数据文件 passwd ,请看下文配置
auth-db=authz               # 指向验证用户的权限配置文件 authz ,请看下文配置
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5

注意:这四行在文件中应该已经存在,去掉前边注释就好了,每一行前方不能有空格,否则会出现 Option expected错误!
passwd用户名密码配置文件

vi/home/svn/blog/conf/passwd
[users]
manager1=123456        #每一行都要是“用户名=密码”的格式manager2=123123
manager3=888888
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4

authz用户权限配置文件

# vi/home/svn/blog/conf/authz
[groups]
managers=manager1,manager2      # 定义群组 managers包含manager1和manager2两个用户
[/]
@managers=rw                    # 定义群组 managers 有读写权限
manager3=r                      # 定义 manager3 有读权限
*=                              # 以上没有定义的用户都没有任何权限
1
2
3
4
5
6
7
1
2
3
4
5
6
7
1
2
3
4
5
6
7
1
2
3
4
5
6
7
1
2
3
4
5
6
7

现在已经配置好了,我们启动svn

svnserve -d -r /home/svn
1
1
1
1
1

到这里svn版本库算是建好了,下面介绍,导入好检出

将文件导入版本库:

终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]
例如我把/home/wwwroot/blog/index.html,作为网站的根目录,将当前目录导入版本库blog:

svn import . file:///home/svn/blog -m "导入文件"
``` bash
### 从版本库导出:
导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
终端输入:`svn co [版本库路径] [导出目标路径]`
例如将blog库中的文件导出到当前目录/home/wwwroot/blog中:
``` bash
svn co file:///home/svn/blog .
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8

下面介绍钩子的使用,钩子可以让客户端提交的代码,直接放到根目录下,不用每次将文件手动纳入版本库
设置钩子,在/home/svn/blog/hooks/目录下面,新建一个钩子文件为post-commit,并修改文件的权限#chmod 755 post-commit

vi post-commit
chmod 755 -R post-commit
1
2
1
2
1
2
1
2
1
2

编辑post-commit,把以下代码写入

#!/bin/sh
export.UTF-8
/usr/bin/svn update --username user --password 123456 /home/wwwroot/blog
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3

有木有觉得很简单了

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fc0ae5ba64ef.html

2020-02-10 标签: linuxsvn