Svn Dreamhost subversion提交后挂钩不工作

Svn Dreamhost subversion提交后挂钩不工作,svn,tortoisesvn,cgi,dreamhost,Svn,Tortoisesvn,Cgi,Dreamhost,我在网上看过很多文章,但似乎没有一篇给出答案。 我运行一个安装程序,其中: 我有一个网站,将运行主干文件的副本 此网站有一个与之关联的svn文件夹 我有一个本地测试环境,在我的mac上有wampserver/mamp,在我的pc上有tortoise svn 因此,我有一个存储库的签出,我进行更改,当我有一个版本时,我提交文件 我希望在提交到svn存储库时自动更新-此wiki解释了如何执行此操作: 不幸的是,它充满了问题。一旦我有了我的cgi文件夹和更新后的提交钩子,我就收到了255的退出代码。在

我在网上看过很多文章,但似乎没有一篇给出答案。 我运行一个安装程序,其中:

我有一个网站,将运行主干文件的副本 此网站有一个与之关联的svn文件夹 我有一个本地测试环境,在我的mac上有wampserver/mamp,在我的pc上有tortoise svn

因此,我有一个存储库的签出,我进行更改,当我有一个版本时,我提交文件

我希望在提交到svn存储库时自动更新-此wiki解释了如何执行此操作:

不幸的是,它充满了问题。一旦我有了我的cgi文件夹和更新后的提交钩子,我就收到了255的退出代码。在我将cgi和钩子转换到unix并重新上传之后,我的退出代码是1

我再次更改了chmod,没有收到任何错误。 不幸的是,dreamhost没有将这些文件更新到我的live站点

我的钩子文件如下所示:

提交后:

        #!/bin/bash
        wget --http-user=username --http-passwd=password -qO - http://website.com/cgi-bin/pri/do_update.cgi     
和我的do_update.cgi: #!/垃圾箱/垃圾箱

    # disable filename globbing
    set -f

    echo "Content-type: text/plain; charset=iso-8859-1"
    echo

    echo /usr/bin/svn update /home/username/website.com
Google返回了很多有这个问题的页面,除非我突然学会了如何用C语言编译程序,否则我将无法实现这个功能


感谢任何帮助,并最终为其他人在互联网上发布一个好的答案…

我就是这么做的,它不是在linux机器上,但在提交后直接调用svn似乎对我有用。如果您有一个大型导出,它确实会稍微延迟您的签入,但非常简单。对于linux机器应该非常类似

钩子:

svn.exe export https://myhostname/svn/project/trunk %WEBSITEDIR%\httpdocs\store --quiet --non-interactive --force --username user --password pass

在经历了许多像你一样的麻烦之后,我终于让svn post-commit钩子在Dreamhost上工作了。我的两个文件与您的完全相同,只是看起来您的cgi脚本中有一个额外的“echo”

我的cgi文件的权限是:-rwxr-xr-x(如果我没记错的话,那是755)

不要忘记/cgi-bin/目录的.htaccess/.htpasswd设置:

以下是/cgi-bin/目录中my.htaccess的外观:

AuthName "Dialog prompt"

AuthType Basic

AuthUserFile /home/username/x.com/cgi-bin/.htpasswd

Require valid-user
请记住,cgi脚本文件中“wget”的用户名/密码不是您的svn用户/密码,而是您专门通过该.htaccess文件为cgi bin目录设置的用户/密码(也不是您的DH用户名/密码)。我不确定svn用户/通行证在哪里起作用,可能只是在初始签出时(通过bash)

昨晚我正在研究如何“重置”我的SVN(它停止运行post-commit钩子,但没有报告任何错误)。为了解决这个问题,我必须通过bash登录DH,然后手动运行
svn up
。在我的X.com站点目录中运行该命令时,SVN最终报告了一个错误(一个“文件已经存在”,SVN没有覆盖它)。为了解决这个问题,我只需重新执行update命令:
svn up--force
。真倒霉!,我的svn在我的web目录中运行了一个完整的更新,最后我的web服务器上有了我的最新文件。唷

如果我没记错的话(这个post-commit钩子已经正常工作了几个月),我必须首先通过bash将
svn签出到我的web目录中。完成初始签出后,钩子的
svn更新
工作正常。(仅供参考,我使用乌龟来完成我所有的日常任务)

祝所有试图在DH上运行post commit挂钩的人好运。这可能很难设置,但最终,完全值得

:-p