在visualc+中使用Git进行自动版本控制+; 我在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)
然后,我运行SubWCRev作为预构建步骤,以生成包含在项目中的头文件,以定义版本号 我现在正在使用Git,想做一些类似的事情。我知道Git没有一个与修订号相同的版本号,但是头部SHA就可以了在visualc+中使用Git进行自动版本控制+; 我在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),c++,git,visual-c++,C++,Git,Visual C++,然后,我运行SubWCRev作为预构建步骤,以生成包含在项目中的头文件,以定义版本号 我现在正在使用Git,想做一些类似的事情。我知道Git没有一个与修订号相同的版本号,但是头部SHA就可以了 似乎没有一种与Git相同的方法来实现这一点,我需要编写一些脚本,这不是我的强项。Git专家能为我指出实现这一目标的正确方向吗?我正在使用Git Descripte的输出作为构建字符串。我不用窗户 这个例子在Linux下运行良好 版本.h #ifndef GIT_VERSION_H #define GIT_
似乎没有一种与Git相同的方法来实现这一点,我需要编写一些脚本,这不是我的强项。Git专家能为我指出实现这一目标的正确方向吗?我正在使用Git Descripte的输出作为构建字符串。我不用窗户 这个例子在Linux下运行良好 版本.h
#ifndef GIT_VERSION_H
#define GIT_VERSION_H
extern const char* git_version;
#endif
c版由awk生成
git describe | awk 'BEGIN { print "#include \"version.h\"" } { print "const char* git_version = \"" $$0 "\";"} END {}' > version.c
Dirk我终于找到了一个非常有用的批处理文件,它实际上比我需要的要多: 它的工作基本上与SubWCRev非常相似,并生成一个头文件,我可以将其包含在我的VS项目中,以设置所有版本字符串。在对脚本进行了一点修改之后,我已经让它完全按照我的意思来做了 这里也有一个C版本:
在简单的情况下,以下命令行可能就足够了:
git rev-list HEAD --count
--打印修订的数量,如“123”。使用最新的Ortoisegit 2.7.0,您只需将SubWCRev替换为GitWCRev即可获得相同的结果。修订版将使用git的SHA1。您是否找到过为主/次/微/构建设置定义值的解决方案?由于windows操作系统没有与unix系统相同的功能,GIT也没有提供与subwcrev相同的功能,因此我正在寻找完全相同的答案。BUILD_版本实际上是SHA-1散列。