现在的位置: 首页 > 综合 > 正文

Centos的svn钩子自动更新部分终于完成了!

2013年07月29日 ⁄ 综合 ⁄ 共 1635字 ⁄ 字号 评论关闭

系统: 

Centos6.4 , Apache/2.2.15  and  Subversion version 1.6.11

Windows7 and TortoiseSVN 1.7.13

前提条件

http://blog.csdn.net/xiongdi9456/article/details/9078939接着上次的svn配置继续完成,

(1)Checkout

1 . # mkdir /var/www/html/helpdesk

2.  # cd /var/www/html

3. # chown -R apache:apache helpdesk

4.必须使用apache的所属用户和组来执行checkout, 

     首先,我得明确apache用户和组是哪个用户. 信息都在httpd.conf文件里 .在 CentOS这个系统,账户名字就是apache

     第二部,su apache.

                 这一步可能会有问题“This account is currently not available”,没有的跳过

这个解决方法是

                       ①查看apache账户的信息#cat /etc/passwd | grep apache。  发现属性的结尾部分是这样的 “/sbin /nologin”

                       ②把这部分编辑成“/bin/bash”.命令  #vi /etc/passwd 。保存退出

    第三部,重启apache。 #service httpd restart.

5.切换apache用户  #su apache

6.进行checkout操作。   bash-4.1$ svn checkout http://yourIP/svn/helpdesk/trunk/ /var/www/html/helpdesk/

7.提示你输入apache密码,空 .直接Enter

8.输入前面配置好的username and password 

9. 输入两次 "yes" 

OK.checkout结束

(2) 测试一下你的checkout的内容能不能更新

bash-4.1$ svn update /var/www/html/test/trunk --username name --password pass,Enter
如果出现 At revision 12.这种svn的版本号,可以正常更新

(3).post-commit

1.回到root用户

2.#cp post-commit.tmpl post-commit

3.编辑post-commit file

#!/bin/sh
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/var/www/html/helpdesk
LOG_PATH=/tmp/svn_update.log
echo "\n\n\n##########COMMIT " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
"$SVN" update --username name  --password pass "$WEB" --no-auth-cache >> "$LOG_PATH"
chown -R apache:apache "$WEB"

保存并退出

4.#chown apache:apache post-commit

5.给post-commit权限 #chmod 777 post-commit

6.#service httpd restart

(4)windows7

安装 TortoiseSVN 1.7.13 并且 checkout    http://yourIP/svn/helpdesk/trunk/

其实我在第一篇文章结束测试时就已经配置好了Windows的这部分。

Windows部分更新图,Hello.txt的内容是:

Hello World!!!
I feel good!

Windows的chrome浏览器查看

再看服务器

再看log文件

文件内容一致,完成了更新

Over.

抱歉!评论已关闭.