测试环境 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下来的目录