SVN关键字替换示例
时间:2020-02-23 14:41:54 来源:igfitidea点击:
我使用SVN作为存储库管理工具,通常同时处理多个项目。
我一直在寻找使用SVN生成可以包含版本详细信息的发行说明文件的方法。
然后,我了解了SVN关键字替换属性,并使用它为我的项目创建了发行说明。
SVN提供您可以在文件上设置的关键字列表,它将在代码检入时动态地将其替换为最新信息。
其中一些关键字是Id,Author,Revision,HeadURL等。
因此,要创建我的发行说明文件,首先,我在项目根目录中添加了release.txt文件,其中包含以下信息。
release.txt
====================================== Version Number: 0.0.1-SNAPSHOT ====================================== SVN Revision: ------------ - $Id: $ - $HeadURL: $ Release Notes : ----------------------- - Testing Project
请注意Id和HeadURL的使用,这是我检入此文件时SVN将替换的关键字。
但是在此之前,我们需要使用以下命令在此文件上设置svn:keywords
属性。
svn propedit svn:keywords release.txt
添加要动态替换的所有关键字,并以空格分隔,例如" Id HeadURL"。
现在,在完成所有版本的开发后,我签入此文件,然后像这样动态编辑文件。
====================================== Version Number: 0.0.1-SNAPSHOT ====================================== SVN Revision: ------------ - $Id: release.txt 194 2013-05-31 04:24:20Z pkumar $ - $HeadURL: https://localhost:1080/SVNROOT/SANDBOX/MyProject/release.txt $ Release Notes : ----------------------- - Testing Project
现在,每次我只要将带有发行说明数据的其他信息添加到文件中,就可以轻松找出哪个是版本的最新修订版本号。
例如,签入时我的文件如下所示。
====================================== Version Number: 0.0.2-SNAPSHOT ====================================== SVN Revision: ------------ - $Id: $ - $HeadURL: $ Release Notes : ----------------------- - New Features ====================================== Version Number: 0.0.1-SNAPSHOT ====================================== SVN Revision: ------------ - $Id: release-notes.txt 194 2013-05-31 04:24:20Z pkumar2 - $HeadURL: https://localhost:1080/SVNROOT/SANDBOX/MyProject/release.txt Release Notes : ----------------------- - Testing Project
请注意,我们需要从文件中的关键字中删除结尾的$,否则它也会被替换。