1

简而言之,我想在每次提交后将项目中的所有 JavaScript- 文件合并到一个文件中,并在此提交\修订中包含“已编译”文件。我该做什么?

我尝试使用 post-commit 钩子,post-revprop-change,但要么我很愚蠢,要么它对我没有帮助。

4

1 回答 1

3

首先,您不应该在版本控制存储库中包含生成或“编译”的文件。有关它的推理,请参阅此SO 答案。最好的选择是有一个构建脚本,它使用一个简单的命令生成组合文件并将其添加到您的部署过程中。生成的文件应该添加到svn:ignore 属性中。

对于您的具体问题,甚至还有网络服务器模块,例如Google mod_pagespeed,可以自动组合 javascript 文件。此解决方案比在您的存储库中包含生成的代码要好得多。

现在,如果你真的想这样做,你应该使用pre-commit hook。您应该在将文件发送到版本控制之前生成文件。看到你会遇到很多麻烦

  1. 首先:subversion 钩子在你的 subversion 服务器所在的机器上运行,所以你需要所有的脚本来生成位于那里的文件。
  2. 结果是您的本地工作区中不会有生成的文件,您需要在每次提交后进行更新。糟糕的!
  3. 如果文件不受版本控制,您必须注意将文件添加到 subversion
  4. 如果由于任何原因在提交此文件时发生冲突,您的用户将很难尝试调试它。

如果您遵循这条可怕的道路,请不要告诉任何人我已经告诉过您该怎么做:-)

于 2013-10-16T01:38:51.750 回答