一、检查svn是否安装
使用命令:
svn
如果显示:
Type 'svn help' for usage.
则卸载svn:
sudo apt-get remove --purge subversion
二、安装svn
先更新:
sudo apt-get update
再安装:
sudo apt-get install subversion
三、创建svn版本库
创建总库svn:
sudo mkdir /home/svn
创建单个库repository:
sudo mkdir /home/svn/repository
更改repository权限:
sudo chmod -R 777 /home/svn/repository
创建版本库:
sudo svnadmin create /home/svn/repository
然后,进入repository目录会看到以下几个文件:
conf db format hooks locks README.txt
四、配置文件
在repository目录,对db更改权限:
sudo chmod -R 777 db
进入conf文件夹,有以下几个文件:
authz hooks-env.tmpl passwd svnserve.conf
1、修改配置文件svnserve.conf
vim svnserve.conf
取消以下四个的注释:(要顶格)
anon-access = read #匿名用户可读
auth-access = write #权限用户可写
password-db = passwd #密码文件为passwd
authz-db = authz #权限文件为authz
2、修改配置文件authz
vim authz
在最末尾添加:
[/]
“你的用户” = rw
3、修改配置文件passwd
vim passwd
在 [users] 下面添加:
"你的用户" = “你的密码”
五、启动服务
svnserve -d -r /home/svn
查看是否启动成功:
ps aux | grep svnserve
如果有这一条,则是启动成功
root 14570 0.0 0.1 73488 2840 ? Ss 01:23 0:00 svnserve -d -r /home/svn
若想停止服务:
killall svnserve
六、本地拉取服务器svn代码及上传代码
1、拉取:先确保本地安装TortoiseSVN,在你想要的文件夹右键——SVN Checkout——填入svn://你的服务器IP/repository——确定——输入你的用户和你的密码——OK!
2、上传:在当前文件夹修改文件后——右键——SVN Commit——ALL(全选)——OK
七、服务器更新代码
svn co file:///home/svn/repository/ /var/www/html
其中 /var/www/html 你的网站目录。
这样你就能在 /var/www/html 看到你上传的代码啦~
八、自动更新钩子
每次提交代码后,我们希望服务器能自动更新,因此进入到 /home/svn/repository/hooks 目录,可以看到已经有了一个post-commit文件,但我们要新建一个post-commit
vim post-commit
输入如下代码,WEB代表你的网站目录,username和password是你的账户和密码
#!/bin/sh
WEB=/var/www/test
export LANG=en_US.UTF-8
sudo svn update $WEB --username zhangsan --password 123456
最后给文件授权
chmod +x post-commit
这样,每次本地提交,服务器也能更新啦~