svn update在post commit中不起作用

Gab*_*mon 2 svn hook post-commit

我正在尝试实现一个post-commit钩子来更新工作副本.据我所知,post commit hook正在运行(我在文件中写了一些东西来验证它)但是没有运行update命令.

起初我做到了

cd /home/user/working/copy
svn update
Run Code Online (Sandbox Code Playgroud)

但那不起作用,那么我读到你必须给出svn的完整路径:

cd /home/user/working/copy
/usr/bin/svn update
Run Code Online (Sandbox Code Playgroud)

但它仍然没有奏效.

我将permisions更改为777,并在一个空的环境中运行脚本......它的工作原理.

Sta*_*ish 5

#!/bin/bash
/usr/bin/svn update /home/user/working/copy

上面的代码应该作为post-commit钩子.

如果需要,添加--username和--password选项.

编辑:

看到 http://subversion.tigris.org/faq.html#website-auto-update

执行提交的服务器程序(svnserve或apache)与将运行提交后挂钩脚本的程序相同.这意味着该程序必须具有更新工作副本的适当权限.

如果需要更新的"工作副本"归同一用户所有,那么您无需担心用户名和密码.

Subversion FAQ建议使用Setuid和以下C程序.

#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
execl("/usr/local/bin/svn", "svn", "update", "/home/joe/public_html/",
    (const char *) NULL);
return(EXIT_FAILURE);
}
Run Code Online (Sandbox Code Playgroud)