问题现象:程序的版本信息保存在version.h中,每次需要手动去添加svn版本很麻烦
问题分析:可以通过自动生成的方式来实现
问题解决:
1、使用svn info将版本信息搜集,使用findstr来筛选信息
2、echo结果到version.h
3、设置svn hook,当有提交动作后,自动执行1 2步编写的脚本指令
问题经验:
1、svn info出的信息是中文:把subversion 目录 C:\Program Files\SlikSvn\Share\Locale\zh_CN\LC_MESSAGES\subversion.mo 文件删除掉后,svn返回都使用了默认的英文,findstr也能找到对应信息
2、echo输出到version.h有误,先>删除之前的内容,再用>>来追加想要的内容
3、svn hook可能会存在失败的可能,可以使用pre-update选项
问题代码:
@echo off
echo #ifndef APP_VERSION_H_ > ./Includes/app_Version.h
echo #define APP_VERSION_H_ >> ./Includes/app_Version.h
for /f "delims=" %%i in ('svn info ./ ^| findstr "Rev:"') do set rev=%%i
set ver=%rev:~18%
echo %ver%
#echo #define VERSION "%ver%" >> ./Includes/app_Version.h