如何将已部署的代码副本与SVN进行比较,以确定已部署的代码对应于哪个更改集

  • 本文关键字:部署 代码 于哪个 副本 SVN 比较 svn
  • 更新时间 :
  • 英文 :


我已经在各种测试环境中部署了代码。这些部署通常使用svn export或通过在机器之间复制目录(减去.svn)来完成。

这些目录应该仍然与它们来自的存储库匹配,但是我不确定它们是从哪个版本部署的。我如何让svn查看目录并在存储库中找到与之匹配的版本?

毫无共同之处。版本化文件本身不包含任何关于工作副本当前版本的元数据(或用于从存储库导出的export-source)。

你必须使用更"智能"的部署过程,并手动在"环境"中存储所需的信息。它可以是:

  • svnversion在WC-root中的输出
  • svn info用于WC或repository的输出(有大量多余的信息)
  • subwcrev的处理模板或它的linux兄弟svnrev(不支持SVN 1.8+ WCs)

当然,"正确"的答案是,一般来说,这并不是使用SVN在"事后"完成的任务。应该在SVN之外和/或在标记中跟踪部署的代码版本。如果您总是在准备部署时创建一个标记,然后从该标记进行部署,那么您应该能够知道它来自何处。

如果你的项目只有很少的文件,但是,你可以使用svn:keywords特性来插入每个文件更改的最后版本号到文件本身。请参阅http://svnbook.red-bean.com/en/1.7/svn.advanced.props.special.keywords.html。注意,如果需要跟踪的文件数量超过几个,那么这将无法很好地扩展。在进行部署时最好从存储库中捕获信息,正如Lazy Badger的回答所建议的那样。

相关内容

最新更新