【问题标题】:SVN post-commit hook on Windows stopped runningWindows 上的 SVN 提交后挂钩停止运行
【发布时间】:2011-10-23 15:08:48
【问题描述】:

我在 Windows 上运行 SVN,并且在我设置它的那天运行了一个提交后挂钩。现在它不再运行了。我正在通过 Apache Httpd 运行 SVN。作为故障排除的一部分,我执行了以下操作:

  • 成功签入一个文件并从 TortoiseSVN 的 repo 浏览器查看它
  • 已验证 post-commit.bat 文件是否在我的存储库的 hooks 目录中
  • 将 post-commit.bat 文件缩减为这一行:

    echo hello > hello.txt

  • 签入文件并在 Apache 安装文件夹 (E:\Applications\Apache2.2) 及其子目录中查找 hello.txt 文件,但一无所获

  • 已验证 Apache 服务已启动并正在运行(它必须已成功签入)
  • 使用services.msc 监视我的服务,看看是否有一些我需要运行的监控服务被意外停止;我不认识任何人
  • 我创建了一个 pre-commit 钩子并验证它是否按预期运行(所以这只是 post-commit 钩子的问题 - 通常不是所有钩子)

我应该采取哪些后续步骤来解决我的提交后挂钩未执行的原因?

【问题讨论】:

  • Wrote a post-commit.bat file and verified that it IS RUNNING是什么意思
  • 我的意思是 a 做了一个 post-commit 钩子,并且该钩子按预期运行。
  • 你检查过 apache 日志吗?他们应该告诉你发生了什么。
  • 我的意思是 pre-commit 钩子。那是一个错字。我的 error.log 没有显示围绕我的提交的任何活动。我在 access.log 中看到了我的连接,但没有任何迹象表明存在问题。

标签: svn


【解决方案1】:

太简单了太荒谬了,但是您是否验证了运行脚本的用户有权写入工作目录?通常 Web 公开的服务不会,因为您的脚本可以有效地重写自身(或其他脚本)。

【讨论】:

  • 我相信是的。它在我的帐户下运行,我是该服务器的管理员。我假设我的工作目录是 E:\Applications\Apache2.2\bin 是否正确?我拥有对该目录的完全访问权限。
  • Apache 通常在绑定端口 80 后从系统范围的超级用户转变为较小的无权限用户。它这样做是为了防止错误编写的 CGI 和其他动态内容改变它所服务的配置和内容。我并不是说这是您的情况,但值得进行足够的调查以确定这不是您的问题的一部分。
【解决方案2】:

解决了...有点。

我重新启动了 Apache 服务,一切都神奇地开始工作了。我应该从这种经历中讨厌什么? Subversion、Apache 还是 Windows?

【讨论】:

  • 不确定,但为了安全起见...Windows!
猜你喜欢
  • 2014-08-10
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2012-10-18
  • 1970-01-01
  • 2011-07-02
  • 2016-06-02
  • 1970-01-01
相关资源
最近更新 更多