美文网首页
TortoiseGit自动使用git版本号作为编译版本号

TortoiseGit自动使用git版本号作为编译版本号

作者: 简单点的笨演员 | 来源:发表于2021-12-16 23:52 被阅读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};
    

    相关文章

      网友评论

          本文标题:TortoiseGit自动使用git版本号作为编译版本号

          本文链接:https://www.haomeiwen.com/subject/tgovfrtx.html