第一步:
通过svnversion.sh将SVN版本号导入到SVN_Serial.h内,并将svnversion.sh添加到Makefile文件内,以便编译时执行此脚本,获得SVN版本号,供程序使用
svnversion.sh内容如下:
#! /bin/sh
VERFILE=./include/SVN_Serial.h
svn_last_rev_str=`svnversion -c`
svn_last_rev=${svn_last_rev_str##*:}
echo "#define SVN_SERIAL $svn_last_rev" > $VERFILE
第二步:
在version.h内将获得在SVN_Serial.h内的SVN版本号加以处理,方便程序使用
version.h内容如下:
#ifndef _VERSION_H_
#define _VERSION_H_
#include "SVN_Serial.h"
#define VERSION_HEAD "Ver"
#define VERSION_PATCH SVN_SERIAL
#define VERSION_COMP_DATE __DATE__
#define VERSION_COMP_TIME __TIME__
#define _VERSION_STRINGIZE(str) #str
#define _VERSION_STRING(num) _VERSION_STRINGIZE(num)
#define VERSION_STRING VERSION_HEAD \
_VERSION_STRING(VERSION_PATCH)" "
#define VERSION_COMP_DATA_TIME VERSION_COMP_DATE"-"\
VERSION_COMP_TIME
#endif
PS:命令:svn info也可以得到SVN相关的信息,不过它不能获得当前版本修改后的情况,即:xxM。
另svnversion得到的是当前SVN的最新版本(包括其它项目的更新版本号),svnversion -c则是最近一次改变的,而不是目前的版本。
----------------------------------
参考文献:
http://blog.tianya.cn/blogger/post_show.asp?BlogID=803354&PostID=23119512
http://3444542.blog.163.com/blog/static/42266602200801985823995/
阅读(4350) | 评论(0) | 转发(0) |