【问题标题】:Subversion oddity - svn info revision higher than last changed rev on project folderSubversion 奇怪 - svn 信息修订高于项目文件夹上的最后更改 rev
【发布时间】:2010-12-23 22:49:28
【问题描述】:

发生了一些我无法解释的事情。

我有我的项目的工作副本 - 完成 svn 更新(上面写着:更新到 1895 版),我知道它是最新的。当我对项目文件夹执行svn info 时,Revision 是 1895,但 Last Changed Rev 是 1888。

使用 TortoiseSVN 检查日志显示 1888 是最后一个修订版,没有 1895 的痕迹。1895 上的 svn log 是空的,1895 和 1888 之间的 svn diff 也是空的,即。没有区别。

我是如何以某种方式最终得到一些没有真正改变任何东西的流氓修订版?它基本上导致构建服务器(认为它在 1888 年)与我的 MSBuild SvnVersion 任务不同步(认为修订版是 1895)。

任何建议表示赞赏。

编辑:如果 Revision 将始终显示整个存储库的最新版本,这意味着像 SvnVersion MSBuild 任务(它使用 svnversion.exe,但表现出类似的行为)不会显示当您拥有多个项目的单一存储库时,您需要使用“Last Changed Rev”作为版本号。

因此,现在滚动我自己的 SvnLastChangedRev MSBuild 任务。

【问题讨论】:

  • 整个 repo 实际上并不是什么大问题:如果您签出该修订版,您仍然可以获得该项目的正确代码副本,并且能够再次构建它。如果您使用 CruiseControl 之类的东西,设置为仅基于更改构建,那么无论如何您都不会为该项目获得新版本(假设它是唯一签出的东西)。
  • 您的 SvnLastChangedRev MSBuild 任务是否有所进展?因为我有类似的问题
  • @James - 是的,我在 CodePlex 上发布了一堆有用的 MSBuild 任务,其中包括 SvnLastChangedRev 任务。见:zealanditmsbuild.codeplex.com

标签: svn version-control msbuild revision


【解决方案1】:

这不是问题或奇怪...修订号适用于整个 Subversion 存储库,因此,由于存储库中其他地方的更改,修订号可能高于上次更改的修订号您正在工作的存储库的分支。

澄清一下,如果您提交到 trunk,将存储库带到修订版 10,然后在 branchestags 中进行一系列更改将存储库带到修订版 1000,那么 10 将是“最后一个trunk 文件夹的修订版”,但整个存储库的当前修订号为 1000。

【讨论】:

  • 我知道每个存储库的修订号是全局的。但是当我在存储库树下的一些层次结构级别的工作文件夹中执行更新时,我从未注意到它会全局更新为最新版本,只是该路径的最新版本。
  • @WimHollebrandse 仅当您在结帐/存储库的根目录运行 svn update 时,您才会全局看到更新的修订版。 Subversion 永远不会更新父目录的元数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多