【问题标题】:SVN post-commit scriptSVN 提交后脚本
【发布时间】:2013-09-23 15:01:16
【问题描述】:

我的 hooks 文件夹中名为 post-commit.sh 的文件中有这个:

/usr/bin/svn update /var/www --username XXXXX --password XXXXX

现在如果我运行:

bash post-commit.sh

一切正常,但如果我从我的电脑进行提交,那么它就不起作用了。我已将 www-data 用户添加到组“开发人员”中,即网站和 svn 目录的文件夹和文件所有者组。我已经使 sh 文件可执行。我错过了什么? 谢谢 詹姆斯

【问题讨论】:

    标签: svn hook post-commit-hook


    【解决方案1】:

    脚本应该命名为post-commit,而不是post-commit.sh

    http://svnbook.red-bean.com/en/1.7/svn.ref.reposhooks.post-commit.html

    【讨论】:

    • 重命名文件有效,现在当我用乌龟从我的窗口提交时,我可以看到钩子运行,但我收到以下错误:svn: E155004: Working copy '/var/www' locked跨度>
    • 我认为运行一切的用户是 www-data,因为那是运行 apache 的用户,你认为我的假设是否正确?我只完成了标准的 subversion/apache 安装。并将 /var/www 的权限更改为 777 作为测试
    • 这些可能很难调试。您可以在脚本文件中放置更多命令并将它们重定向到文件以进行测试。如果你手动运行脚本,它会给你同样的 svn 错误吗?
    • 不,如果我运行“bash post-commit”一切正常。它可能与执行所有操作的用户有关,我将如何确定这实际上是 www-data?
    • 我不是 Linux 专家,但我猜会有一些东西可以报告当前用户。将其添加到脚本中并将其写入对每个人都具有写入权限的某个文件夹。
    【解决方案2】:

    您缺少环境。脚本以谁的身份运行,尝试从 SVN 服务器正在运行的目录以该用户身份运行您的 bash 脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2019-02-16
      • 2010-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多