Red*_*eye 8 c++ git visual-c++
我在VS2013中有一个C++项目.在过去的类似项目中,我使用SubWCRev和Subversion来自动生成版本号.我有一个这样的模板文件:
#define MAJOR_VERSION 2
#define MINOR_VERSION 2
#define MICRO_VERSION 0
#define BUILD_VERSION $WCMODS?$WCREV$+1:$WCREV$$
#define QUOTE_(x) #x
#define QUOTE(x) QUOTE_(x)
#define BUILD_VERSION_STRING QUOTE(MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION.BUILD_VERSION)
Run Code Online (Sandbox Code Playgroud)
然后我运行SubWCRev作为预构建步骤来生成我在项目中包含的头文件以定义版本号.
我现在正在使用Git,并希望做类似的事情.我知道Git没有相应的修订号,但HEAD SHA会没问题.
似乎没有一种与Git相同的方法,我需要做一些不是我强项的脚本.Git Guru可以指出我正确的方向来实现这一目标吗?
我最终找到了一个非常有用的批处理文件,它实际上比我需要的更多:
https://github.com/Thell/git-vs-versioninfo-gen
它基本上与SubWCRev做了一个非常相似的工作,并生成一个头文件,我可以在我的VS项目中包含它来设置所有版本字符串.在对脚本进行了一些黑客攻击后,我完全按照自己的意愿行事.
这里也有一个C#版本:
https://github.com/jasperboot/git-vs-versioninfo
小智 1
我使用 git describe 的输出作为构建字符串。我不使用窗户。
这个例子在Linux下运行良好。
版本.h
#ifndef GIT_VERSION_H
#define GIT_VERSION_H
extern const char* git_version;
#endif
Run Code Online (Sandbox Code Playgroud)
version.c由awk生成
git describe | awk 'BEGIN { print "#include \"version.h\"" } { print "const char* git_version = \"" $$0 "\";"} END {}' > version.c
Run Code Online (Sandbox Code Playgroud)
短剑
| 归档时间: |
|
| 查看次数: |
3911 次 |
| 最近记录: |