2009-04-30 67 views
1

我的问题是:我不想在文件“A”中显示文件“B”的最新版本号。Subversion跨文件关键字替换

颠覆了一个有特色的名为 “Keyword Substitution”。当您提交文件内容时,它会使用实际值替换关键字。

但有可能在一个文件中添加关键字,它会涉及到其他文件中的值来取代?如果不是的话,上面我的原始问题状态的解决方案是什么?

我想杰夫·阿特伍德这样做,这里在StackOverflow的站点。如果我还记得,他甚至在之前的播客中评论过它。

<script type="text/javascript" src="/content/js/master.js?v=3067"></script> 

“v = 3067”似乎是“master.js”的最新修订版本号。杰夫,你能帮我一下吗? :)

回答

1

嗯,这个数字可能是两件事情之一:

  1. 网站的资料库中HEAD的版本号
  2. 最后更改为特定文件
的版本号

无论在哪种情况下,它都有一个特定的目的,以确保当用户获取带有CSS或JavaScript文件引用的网页时,使用这样的版本号,如果版本号自上次更改用户访问了相同的页面,Web浏览器将会保留l忽略该文件的本地缓存,并重新下载它。

除非你想要锁定该引用到旧的,工作,版本,我会说,你可以只用HEAD版本号更新。这将是“安全的”,因为它会给你想要的东西,但可能会浪费带宽,因为它会强制重新下载一个可能或可能没有改变的文件。

如果你真的需要其他文件的版本号,该链接,然后我会说,你应该推出一个小程序,自定义关键字系统,并分析日志文件自己的解决方案。

举例来说,你可以这样做:

rc="/content/js/master.js?v=#Rev(master.js)#" 

,并有一个正则表达式,看起来这个:

#Rev\((?<filename>[^)])\)# 

,然后你就必须读从Subversion日志文件,你可以用XML输出。