在SVN提交后合并一些文件

时间:2013-10-16 01:33:39

标签: svn

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

我尝试使用post-commit hook,post-revprop-change,但要么我是愚蠢的,要么它无法帮助我。

1 个答案:

答案 0 :(得分:3)

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

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

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

  1. 首先:subversion挂钩在您的subversion服务器所在的机器上运行,因此您需要生成位于那里的文件的所有脚本。
  2. 结果是您不会在本地工作区中生成生成的文件,您需要在每次提交后进行更新。可怕!
  3. 如果文件不在版本控制下,则必须小心将文件添加到subversion
  4. 如果出于任何原因提交此文件存在冲突,您的用户将有一段时间尝试调试它。
  5. 如果你遵循这条神奇的道路,请不要告诉任何人我告诉你如何做到这一点: - )