您的位置:首页 > 运维架构 > Linux

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

2013-06-14 10:56 459 查看
系统:

Centos6.4 , Apache/2.2.15 and Subversion version 1.6.11

Windows7 and TortoiseSVN 1.7.13

前提条件

/article/1772154.html接着上次的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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: