始终使用SVN提交相同的文件

Gat*_*ler 10 svn

在我的Web应用程序中,我有一个文件,它通过$ Rev $保存当前的修订版号.这项工作正常,但如果我不对该文件进行任何更改,则不会提交.

无论如何我是否可以强制单个文件始终提交到SVN服务器?

我正在使用TortoiseSVN for Windows,因此任何代码或分步说明都会有所帮助.

Can*_*der 13

基本上,您希望svnversion在文件中输出命令.

此类文件通常保留在存储库之外,并由构建脚本自动创建.我建议你这样做.如果不建立,而只是一个svn up在服务器端,只需要调用svnversionsvn up,或创建一个shell脚本来完成这两个操作.

另一方面,如果你必须将它保存在存储库中,那么调用svnversion预提交钩子将是你最好的选择.


Ste*_*fan 9

如果安装了TortoiseSVN,则还可以使用SubWCRev工具.使用该工具获取修订版,而不是滥用$ REV $关键字.

  1. 创建一个模板文件,其中包含您的定义,可能是类似的

    const long WC_REV = $ WCREV $;

    在名为version.h.tmpl的文件中

  2. 在每个构建中,调用SubWCRev来创建可在应用程序中使用的"真实"文件:

    SubWCRev path\to\workingcopy path\to\version.h.tmpl path\to\version.h

这将从version.h.tmpl创建文件version.h,文本$ WCREV $替换为您的工作副本当前所在的修订版本.

SubWCRev文档也可能有所帮助.


Chr*_*ail 6

我想你可能不明白$ Rev $ flag是如何工作的.Rev标志的目标不是将此修订始终提交到subversion存储库中.目标是在更新时,Rev标志将始终是修订版本.您不应该将代码放入包含修订版的subversion中.Subversion非常善于为您跟踪这些信息.

您可能错过的是,您需要在文件上设置属性,以便正确处理Revision关键字.

svn propset svn:keywords "Revision" file.txt
Run Code Online (Sandbox Code Playgroud)

这将确保无论何时进行更新,$ Rev:xxx $标志都将使用当前版本进行更新.您无需担心它如何提交到存储库.