【发布时间】:2011-01-11 23:43:00
【问题描述】:
我想知道是否有任何方法可以使当我使用 Subversion 提交更改时,这些更改会自动反映在我的服务器上的测试文件夹中?也许这个想法是不合理的。我正在努力在这里获得一个好的全景视图。如果我将 subversion 存储库保留在服务器上,这是否合理?
【问题讨论】:
我想知道是否有任何方法可以使当我使用 Subversion 提交更改时,这些更改会自动反映在我的服务器上的测试文件夹中?也许这个想法是不合理的。我正在努力在这里获得一个好的全景视图。如果我将 subversion 存储库保留在服务器上,这是否合理?
【问题讨论】:
我想知道是否有任何方法可以使当我使用 Subversion 提交更改时,这些更改会自动反映在我的服务器上的测试文件夹中?
是的,当然。您想要的称为 post-commit hook - 请参阅此链接以获取相关的 SVN 常见问题解答。
一般的策略是在您的服务器上拥有一个工作副本。当你提交时,脚本会被调用,它的工作是让你的服务器的工作副本启动一个svn update。
【讨论】:
试试svnsync?
如果这不有趣,你可以很容易地用 incron 和 rsync 做一些自定义的事情
【讨论】:
另一种选择(对我来说,更可取)是在 CI 服务器上成功构建后使用构建后推送。将代码放在不正确的服务器上是没有意义的。
【讨论】:
您可以设置一些像 cron 作业一样简单的东西,以每分钟左右检查一次更改。
但是,根据我的经验,我发现设置continuous integration / 构建服务器(如TeamCity 或Hudson)更灵活,每分钟左右检查一次svn 存储库以获取更新。如果有更新,您可以将它们“部署”到测试目录。走这条路的好处是您可以自动执行其他任务,例如重新启动 Web 服务器和/或运行单元测试以及仅在成功时更新等。
此外,subversion 服务器与需要更新的环境位于同一台服务器上并不是完全必要的。
【讨论】: