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};
上一篇下一篇

猜你喜欢

热点阅读