强制SVN(乌龟)签入文件以更新版本

时间:2013-03-15 10:16:53

标签: svn tortoisesvn revision checkin

我有一个文件,其中包含以下格式的修订占位符:

$Rev: 123456 $

文件只有在更改时才会签入,所以,如果我想提交它只是为了更新版本号,我不得不添加一个虚假的更改(例如:添加一个空格,一个新行,类似于为了能够在更改列表中看到它并提交它,获取我正在寻找的结果。 即使我修改了修订标志,例如写:

$Rev: 0 $

SVN“聪明”足以忽略这种变化......

是否有一种(干净的)简单告诉SVN(乌龟)必须在不使用这些“技巧”的情况下检入文件的方法?

注意:这是必需的,因为构建中使用的修订号。这使我们可以在运行时清楚地识别构建版本。

2 个答案:

答案 0 :(得分:0)

  1. 正如链接主题中所建议的那样,您可以在提交之前始终更改文件的某些属性。但是如果你想玩内容,来自TortoiseSVN FAQ的part of answer将对你有用(从“Subversion确定文件是否已经通过以下方法改变了......”)
  2. 从另一方面来说,我会认真地建议你重新考虑当前的工作流程,并为正确的工作使用正确的事情 - 不要依赖文件的关键字(文件修订版)来获得全球存储库 - 广泛修改
  3. 对于“获取存储库修订”任务,您至少有3个不同的工具,其中2个是任何 Subversion的一部分,1是TortoiseSVN的一部分:

    • svnversion,如果。 svnversion <Path-to-WC>输出链接到WC存储库的全局修订版号,没有装饰的干净数字,可以包含在任何内容中

    >svnversion

    37

    (在WC内部,我跳过路径,“。”假设)。输出必须转换为smth。像“回购中的最新版本是37,工作副本是干净的/没有未经修改的更改,没有备用,最近可以复制WC的状态/”

    >svnversion

    37M

    相同的工作副本,但已执行更改但仍未提交

    • 信息。 svn info <TARGET>输出有关目标的详细信息,但也可以与存储库网址一起使用,而不仅仅是工作副本

    >svn info

    ...

    Revision: 37

    ...

    Last Changed Date: 2013-01-09 11:45:39 +0600 (Ср, 09 янв 2013)

    在这种情况下,只有Revision字段(可能还有Last Changed Date)值才有兴趣,但必须从输出中提取此数据

    • SubWCRev以及FAQ-topic
    • 中TortoiseSVN代码的使用示例

答案 1 :(得分:0)

另一种方法是,在同一位置简单地添加占位符(空文本文件)并提交此新文件以及未更改的文件。稍后可以删除文本文件。