网上的资料,都是用svn update命令在post-commit里面进行同步,这里面很多人都忽略了讲最重要的一点,那就是在svn update之前,该目录必须要先用svn checkout一下,否则。update目录会直接忽略该目录。
这,几乎所有的教程里都没讲,我是试了半天啊。。。
后来,也找到了一篇类似教程。希望看到的人少走点弯路。
原文:http://www.unix-center.net/bbs/viewthread.php?tid=11607
Linux环境下配置同步更新的SVN服务器
先搭建环境
Linux版本选择Centos5.0(膘叔:我是用的ubuntu,具体的安装方法可以参考我的上篇step by step安装svu for ubuntu)
#yum update
#yum -y install gcc
#yum -y install httpd
#yum install mod_dav_svn subversionDependencies Resolved
初期配置 我选择的是以HTTP方式实现SVN功能
cd /etc/httpd/conf.d/
vi subversion.conf
添加以下内容
# Make sure you uncomment the following if they are commented outLoadModule dav_svn_module
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
# Add the following to allow a basic authentication and point Apache to where the actual# repository resides.
<Location /boqii> #访问域名,设置后可以直接用http://127.0.0.1/boqii来访问了
DAV svn
SVNPath /svn/boqii #SVN建立的版本数据库位置
AuthType Basic
AuthName "Subversion boqii"
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>
建立SVN的用户和权限设置
建立第一个用户
htpasswd -cm /etc/svn-auth-conf woody
然后根据提示输入密码并且确认密码,以后再建立用户就不需要再加上参数-c了
htpasswd -m /etc/svn-auth-conf keen
htpasswd -m /etc/svn-auth-conf harry
建立版本数据库
cd /
mkdir svn
cd svn
svnadmin create boqii
chown -R apache.apache boqii
设置APACHE发布信息
DocumentRoot "/www"
<Directory "/www">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
service httpd start
建立导入目录
cd /
mkdir www
chmod 755 www
chown apache.apache /www
配置钩子程序
[root@www /]# cd /svn/boqii/hooks/
[root@www hooks]# cp post-commit.tmpl post-commit
[root@www hooks]# chmod 755 post-commit
[root@www hooks]# chown apache.apache post-commit
[root@www hooks]# vi post-commit
将里面的所有代码全部注释
添加以下这行代码
svn update --username=woody --password=woody http://127.0.0.1/boqii /www
然后保存退出
导出版本version:0的数据库内容
svn checkout --username=woody --password=woody http://127.0.0.1/boqii /www
配置完毕,重启一下APACHE服务器试试看
service httpd restart
参考文章
在 FreeBSD 下架設 Subversion
最简单的SVN (subversion)的配置for centos
Version Control with Subversion我的博客 www.yidaman.com 欢迎大家多多交流
先搭建环境
Linux版本选择Centos5.0(膘叔:我是用的ubuntu,具体的安装方法可以参考我的上篇step by step安装svu for ubuntu)
#yum update
#yum -y install gcc
#yum -y install httpd
#yum install mod_dav_svn subversionDependencies Resolved
初期配置 我选择的是以HTTP方式实现SVN功能
cd /etc/httpd/conf.d/
vi subversion.conf
添加以下内容
# Make sure you uncomment the following if they are commented outLoadModule dav_svn_module
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
# Add the following to allow a basic authentication and point Apache to where the actual# repository resides.
<Location /boqii> #访问域名,设置后可以直接用http://127.0.0.1/boqii来访问了
DAV svn
SVNPath /svn/boqii #SVN建立的版本数据库位置
AuthType Basic
AuthName "Subversion boqii"
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>
建立SVN的用户和权限设置
建立第一个用户
htpasswd -cm /etc/svn-auth-conf woody
然后根据提示输入密码并且确认密码,以后再建立用户就不需要再加上参数-c了
htpasswd -m /etc/svn-auth-conf keen
htpasswd -m /etc/svn-auth-conf harry
建立版本数据库
cd /
mkdir svn
cd svn
svnadmin create boqii
chown -R apache.apache boqii
设置APACHE发布信息
DocumentRoot "/www"
<Directory "/www">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
service httpd start
建立导入目录
cd /
mkdir www
chmod 755 www
chown apache.apache /www
配置钩子程序
[root@www /]# cd /svn/boqii/hooks/
[root@www hooks]# cp post-commit.tmpl post-commit
[root@www hooks]# chmod 755 post-commit
[root@www hooks]# chown apache.apache post-commit
[root@www hooks]# vi post-commit
将里面的所有代码全部注释
添加以下这行代码
svn update --username=woody --password=woody http://127.0.0.1/boqii /www
然后保存退出
导出版本version:0的数据库内容
svn checkout --username=woody --password=woody http://127.0.0.1/boqii /www
配置完毕,重启一下APACHE服务器试试看
service httpd restart
参考文章
在 FreeBSD 下架設 Subversion
最简单的SVN (subversion)的配置for centos
Version Control with Subversion我的博客 www.yidaman.com 欢迎大家多多交流