TortoiseGit自动使用git版本号作为编译版本号
2021-12-16 本文已影响0人
简单点的笨演员
TortoiseGit支持Post-commit的hook配置,使用TortoiseGit提交了修改到git后,TortoiseGit可以执行我们配置的命令。我们在hook配置中执行GitWCRev.exe工具,将一个模板文件中的特定变量替换成git版本号,输出一个我们代码可以引用的配置或者代码文件。下面是操作步骤。
首先,我们配置TortoiseGi的Post-commit hook,将下面的代码保存为 .tgitconfig
,放到项目的根目录(.git文件夹
所在的目录)。
[hook "postcommit"]
cmdline = version.cmd
wait = false
show = false
如果想可视化配置这个.tgitconfig
文件,可以右键项目的根目录,选择TortoiseGit->setting->Hook Scripts
来配置,如下图:
接下来,我们来编写TortoiseGit执行GitWCRev.exe工具的批处理文件,将下面代码保存为version.cmd
,修改其中的文件路径,并放到根目录。
REM 命令说明:
REM GitWCRev.exe git路径 模板文件 输出文件
GitWCRev.exe . ./version.tmpl ./version.js -q
然后,我们来编写GitWCRev.exe工具所用到的模板文件,这个得根据自己的代码来写,这里以js来做示例,将下面的代码保存为version.tmpl
,并放到根目录。
var version = "$WCREV$";
var version4 = "$WCREV=4$"; // 从version中截取4个字符
var date = "$WCDATE$" // 该版本的提交时间
export {version, version4, date};
最后,编写使用GitWCRev.exe工具输出的文件的代码,这个根据自己的代码来写,这里以js来做示例。
import {version, version4, version_date} from './version.js';
console.log('版本号SHA1:' + version);
console.log('版本号SHA1的前4位:' + version4);
console.log('版本的提交时间:' + version_date);
每次用TortoiseGit提交修改后,version.js会被自动更新,成像下面这样:
var version = "18dea7cf8796fd1f2db6334639886f8e837a32ef";
var version4 = "18de";
var version_date = "2021/12/16 20:15:08"
export {version, version4, version_date};