利用GIT的HOOK机制,为程序自动生成版本信息
1.git init. 建立git仓库,可以发现.git/hooks目录下有一堆*.sample
2.找到post-commit.sample,post-commit表示提交代码后触发的命令,把后缀去掉
3.在文件最后加入命令,用于在提交之后自动生成包括hash值的头文件:
exec git log --pretty=format:'static TCHAR* gHash=_T("%H");' -n 1 >./.git/LatestHash.h
4.源代码中加入git生成的头文件,就可以使用最新的hash值了。下面代码使用hash跟踪软件版本:
#include "../.git/LatestHash.h"
BOOL CMFCDemoDlg::OnInitDialog()
{
this->SetDlgItemText(IDC_EDIT_HASH, gHash);
5.提交代码,触发.git/hooks/post-commit中命令的执行,自动生成头文件。
6.重新编译工程,hash值即生效。