如何在Apache conf中设置SVN修订号?

我正在build立Apache的开发环境。 我更喜欢将一个环境variables设置为本地签出的SVN修订版本号。 然后用PHP代码读取环境variables值,并将其放入外部JavaScript和CSS URL(作为caching)。 因此,每次我“svn”我的本地代码,我得到了更新的JavaScript和CSS URL相关的修订号。

例如,当前版本号是2314,并设置为$ _SERVER ['REVISION']。 PHP页面将读取这个$ _SERVER ['REVISION']并呈现外部JS链接,如http://www.example.com/2314/home.js 。 由于URL中存在版本号,如果本地修订版本更新,浏览器caching将被拆除以便于开发。

是否有可能在Apache中实现这一点?

谢谢,

-摩根

从阅读你的答案听起来这是一个客户端问题。 Subversion不支持客户端挂钩(从我所知道的),所以我会build议写一个类似于下面的小脚本来执行更新,并更新文件中的版本号。

#!/bin/bash svn update svn info | grep ^Revision | awk '{print $2}' > svn-revision 

然后在你的php代码中,你可以读取版本号如下:

 $SVN_REVISION = file_get_contents('/path/to/svn-revision'); 

我build议从文件中读取版本号,而不是从环境variables中读取。 确保您的当前环境与Apache所运行的环境相同并不容易。 这也确保了PHP代码中的修订号码在重新启动后仍然存在

你应该设置Subversion忽略svn-revision文件,所以你没有检查它。

 svn propset svn:ignore svn-revision .