【问题标题】:ubuntu svn post commit hook does not work, but works on manual runningubuntu svn post commit hook 不起作用,但可以手动运行
【发布时间】:2013-08-28 10:09:13
【问题描述】:
/usr/bin/svn update /var/project2_test/debug --username XXXX--password XXXX
/bin/echo $REV >> /var/project2_test/svn.log

提交时日志已更新。但工作副本永远不会更新。 我手动运行 /home/admin/svn/project/hooks/post-commit 。它有效!

【问题讨论】:

    标签: svn ubuntu post-commit


    【解决方案1】:
    1. 提交后挂钩(实际上是任何挂钩)
      • 在空环境中运行
      • 在另一个用户凭据下运行,而不是手动运行(使用 SVN 服务器的用户)
    2. 无论如何,你必须在真实条件下调试钩子的脚本(作为钩子)。为了做到这一点,你有
      • 拦截update 命令的输出(通过将stdout 重定向到stderr)
      • 向执行提交的用户显示此输出,即因为 stderr 仅在钩子出错的情况下才编组给用户,所以您必须使用非零退出代码退出钩子

    调试阶段的挂钩将类似于

    /usr/bin/svn update /var/project2_test/debug --username XXXX --password XXXX > &2
    /bin/echo $REV >> /var/project2_test/svn.log
    exit 1
    

    【讨论】:

    • 如何在调试阶段使用这个脚本?我是 linux 上的绿色人士。请更具体一点。
    • @user2724902 - 使用“原样”并在响应中仔细阅读钩子的输出
    猜你喜欢
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    相关资源
    最近更新 更多