【发布时间】: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