我正在维护一个自制的基于Web的CRM,我使用Subversion进行版本控制。我想要的是在导出到生产服务器之后将修订号写入文件中,以便我可以在CRM的状态页面中显示它以用于调试原因。
有没有办法用命令行工具做到这一点?
答案 0 :(得分:3)
从技术上讲,在导出之后你无法确定,因为另一次提交可能只发生在中间。实际上,您可以使用svn info <URL>
获取信息。您当然可以首先执行svn info
,提取修订并导出该修订以确保两者都对应。
如果您执行结帐而不是导出,则可通过svn info <path>
获取相关信息。
另一种方法是在导出的文件中使用关键字(让我们称之为script.h),如下所示:
#define VERSION_STRING "r$Revision$"
// ... rest of the file
如果您将svn:keywords属性提供给您的文件(并提交),$ Check $将在结帐或导出时替换:
svn propset svn:keywords "Revision" script.h
(还有其他替换,请查看SVN documentation了解更多详情)
答案 1 :(得分:2)
您可以使用keyword substitution始终将信息存在于文件中。
答案 2 :(得分:1)
如果您使用Ant作为构建工具,您可以编写custom Ant task来从删除Subversion服务器获取信息,将它们存储到Ant项目的属性中并使用替换将这些值放入某些属性/类中
由于您肯定是从Subversion标签构建生产应用程序,因此您不会有显示错误信息的风险(如RegGlyph提到的)