1. 安装
[sourcecode language=”plain”]apt-get install subversion libapache2-svn[/sourcecode]
我的服务器上Apache老早就安装过了。如果你的服务器上还没有安装,可以执行:
[sourcecode language=”plain”]apt-get install apache2[/sourcecode]
2. 创建代码仓库文件夹
[sourcecode language=”plain”]
cd /var/
mkdir svn
[/sourcecode]
3. 修改dav_svn模块配置文件
[sourcecode language=”plain”]cd /etc/apache2/mods-enabled/[/sourcecode]
编辑文件dav_svn.conf ,去掉一些注释符号,修改SVNParentPath路径为上面我们创建的/var/svn/:
[sourcecode language=”plain”]vi dav_svn.conf[/sourcecode]
最终的内容大约是:
[sourcecode language=”plain”]
<Location /svn>
DAV svn
SVNParentPath /var/svn/
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
[/sourcecode]
4. 生成认证所需要的密钥文件
[sourcecode language=”plain”]
sudo htpasswd -cm /etc/apache2/dav_svn.passwd someone
sudo htpasswd /etc/apache2/dav_svn.passwd someone-else
[/sourcecode]
完成上面的操作之后,让apache重新读入一下配置:
[sourcecode language=”plain”]service apache2 reload[/sourcecode]
5. 创建repository
[sourcecode language=”plain”]svnadmin create musicapp[/sourcecode]
就会在目录下生成musicapp文件夹,这个文件夹下包含了.svn子文件夹。接着修改musicapp文件夹属主,让www-data可读写:
[sourcecode language=”plain”]
chown -R www-data musicapp
chmod -R g+rws musicapp
[/sourcecode]
6. 安装客户端,checkout到本地
7. 简单的自动部署
[sourcecode language=”plain”]
#!/bin/bash
svn export –force –no-auth-cache –username=someone –password=hispassword <a href="http://www.fachun.net/svn/musicapp" target="_blank">http://www.fachun.net/svn/musicapp</a> /var/www/somewhere/to/place/musicapp
exit 0
[/sourcecode]
http://www.fachun.net/svn/musicapp是repository的地址。
/var/www/somewhere/to/place/musicapp是web应用的存放路径。
–no-auth-cache选项是必须的,否则脚本无法执行成功,svn命令会询问你是否保存密码。
在上传这个post-commit文件之后,请记得为其添加权限:
[sourcecode language=”plain”]
chmod +x post-commit
chown www-data post-commit
[/sourcecode]
脚本中还可以添加其他内容,比如service apache2 reload,在部署django代码的时候,就可以让修改立即生效。
*本文为华盟网原创文章,作者:防冷涂的腊,如需转载请保证文章未删减并注明出处:华盟网*














暂无评论内容