钩git命令到Visual Studio预构建步骤

问题描述:

我使用git作为版本控制,我试图将当前提交的SHA1挂接到Visual Studio构建中作为定义。钩git命令到Visual Studio预构建步骤

所以基本上我想打开命令

git rev-parse HEAD 

的输出转换成定义,我可以输出二进制中嵌入。

在此先感谢。

使用post-commitgithook,你可以把它放到一个文件中。我认为 git在windows上带有一个Bourne shell,所以下面的代码在post-commit钩子中工作。

#!/bin/sh 
GIT_SHA_INCLUDE_FILE=foo.h 
echo -n '#define GIT_SHA ' > $GIT_SHA_INCLUDE_FILE 
git rev-parse HEAD >> $GIT_SHA_INCLUDE_FILE 

并保存为git的/挂钩/后提交

文件应保持未被跟踪,因为它是(几乎)不可能包括的散列内提交承诺本身。

+1

下面是一个可能存在问题的问题:http://*.com/questions/12410164/github-for-windows-pre-commit-hook – forivall 2013-03-20 18:09:45

坦率地说,我更喜欢在Visual Studio中通过Git post-commit预生成事件。知道你是否从一个肮脏的存储库构建,还有额外的好处。今天写了这篇文章。以下是从构建到执行的一般步骤:

构建过程具有预构建脚本,该构建脚本收集版本和存储库状态信息。在我们的例子中,VC++使用Windows PowerShell version_info.ps1脚本。

预生成脚本生成源代码文件,这是代码库的其余部分所期望的。生成的文件具有允许或拒绝运行版本所需的所有内容。在我们的例子中,它是一个C++头文件version.h

代码包含检查构建是否合法运行的功能,并根据需要记录和停止进程。该示例代码位于version.cpp示例文件的versionLogAndVet函数中。

在运行时,versionLogAndVet函数允许只运行存储库状态/构建配置的许可组合。它还记录版本信息。

The specifics and code examples are at the full post