1

我正在使用 Windows Apache、MySQL、VisualSVN 服务器和 TortoiseSVN 客户端。

我们有一个多系统环境。我有我的网站的工作副本(根目录文件夹),它可以作为实时服务。

有各种用户定期向 SVN 服务器提交对网站的更改,但这些提交不会在实时网站工作副本上更新。

我正在寻找实现提交后挂钩以自动更新实时网站工作副本的确切过程。我需要做什么来实现这一点?

4

1 回答 1

0

你的描述是不够的(还)。所以我描述了一些可能有效的东西(我不喜欢它......)。

  1. 在服务器 X 上创建一个存储库。
  2. 在目录中的服务器 X 上签出存储库的一部分(您希望成为活动的部分)svn-web
  3. 确保svn-web由 apache 提供服务,并尝试隐藏目录svn-web/.svn,以使用户无法通过浏览器看到该目录。svn-web或者只服务于 Apache的一个子目录,所以svn-web/.svn是自动隐藏的。
  4. 实现一个 post-commit-hook(如SVN 红皮书中所述)。
  5. 在该钩子中包括以下内容:cd svn-web; svn update .

然后会发生以下情况:

  1. svn-web开发人员在本地更改目录树的某些部分。
  2. 当他完成更改后,他将提交它们。
  3. 如果提交成功(pre-commit 不拒绝),就会触发 post-commit 钩子。
  4. 将在签出目录中的服务器上进行更新,以便下一个 Web 请求将看到不同的源。

为什么我不喜欢它?

  • 并非 Subversion 中的每个提交都是独立的,因此可能存在对最终用户来说不是“好”的中间状态。
  • 在最终用户发现错误之前,没有测试、集成等阶段来发现错误。
于 2013-09-07T09:56:40.720 回答