svn版本控制

测试环境 Ubuntu 16.0.4 -新版本 php7.0

安装指令:

apt-get install * (卸载指令 apt autoremove *)

进入root用户 执行:

sudo -i 

然后输入root用户密码

1.安装subversion

apt-get install subversion

2.创建版本库保存目录(此处为示例,可自行选择目录)

mkdir /home/svnpro

3.在上一步创建的目录中创建一个版本仓库mypro-one

svnadmin create /home/svnpro/mypro-one

4.进入svn仓库目录,查看目录结构

cd /home/svnpro/mypro-one

ls

conf 此仓库的配置文件
db 此仓库的数据目录
hooks 钩子文件,需要可执行权限,一般都默认有
locks 新版本已经不再使用这个文件了

5.在版本库添加用户

cd /home/svnpro/mypro-one/conf

进入配置文件目录,编辑版本仓库中conf目录中的svn文件

vi svnserve.conf

编辑svnserve.conf文件,去掉下列行的##注释,行首不能有空格
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
如果要设置只有授权的人才能chekout库,anon-access = read改为anon-access = none

vi authz

添加用户组
[groups]
root=harry

#给予用户组读写整个工程的权限
#mypro-one是上面创建的版本仓库
[mypro-one:/]
@root=rw


vi passwd

给指定用户设置密码
[users]
harry = 123456789

6.其它操作

启动指定版本库

svnserve –d –r /home/svnpro/mypro-one

特别的,一个端口号只能启动一个svnserve,如果有多个版本仓库,可以将这些仓库放在同一目录下,如/home/svnpro,然后:

svnserve –d –r /home/svnpro

svnpro目录下的mypro-one: svn checkout svn://127.0.0.1/mypro-one

svnpro目录下的mypro-two: svn checkout svn://127.0.0.1/mypro-two

svnserve –d –r /home/svnpro/mypro-one

把版本库克隆到当前目录下,此时svn服务器地址为127.0.0.1(本机)

svn checkout svn://127.0.0.1/mypro-one

7.重启svnserve(杀死进程)

查看进程:

ps -ef|grep svnserver

杀死进程:kill -9 进程号

8.钩子hooks

cd /home/svnpro/mypro-one/hooks

cp post-commit.tmpl post-commit

vi post-commit

编辑文件,删除文件中未被#注释的内容,并写入

export LANG=en_US.UTF-8

#每次有代码提交的commit执行后,将会执行下面命令
svn update /home/mypro-one
#更新/home/mypro-one目录,前提是这是checkout下来的目录