gpt4 book ai didi

git - 如何维护受 git 源代码控制的 bash 脚本的版本号?

转载 作者:IT王子 更新时间:2023-10-29 00:41:19 24 4
gpt4 key购买 nike

我刚刚完成了一个更复杂的 bash 脚本的第一个工作版本,我正在思考如何维护脚本版本。

为什么我需要这个?正在关注GNU Coding Standards For Commandline Interfaces我添加了一个版本选项,在许可证和版权 header 中显示当前版本。

不过,我不知道如何使版本保持“最新”。

到目前为止,我的想法是为 major | 使用 git 标签。未成年人 |补丁发布,并以某种方式替换脚本中包含的变量。

所以,如果我有一个名为 1.1.0 的标签,那么

$ myscript --version

应该输出如下内容:

myscript 1.1.0

脚本为此包含一个 shell 变量:

version=1.1.0

不过,我现在不知道如何使版本与最新标签保持同步?

最佳答案

据我所知,你想要的是不可能的。为了将版本号提交到版本控制软件中,您必须编辑版本号,提交,然后标记;不是相反。但是,您可以使流程稍微简化一些。

我们可以通过编写一个提交后 Hook 来完成此操作,该 Hook 将读取脚本的版本号,如果它与上次相比发生了变化,则写出一个新标签。为此,从项目目录中 cd 进入 .git/hooks,创建一个名为 post-commit 的文件(或移动 post-commit.sample) 并使其可执行。然后编辑它,使其看起来像这样:

#!/bin/bash

NEWEST_TAG=$(git describe --abbrev=0 --tags)

SCRIPT_VERSION=$(grep "^version=" myscript | awk -F= '{print $2}')

if [ x$NEWEST_TAG != x$SCRIPT_VERSION ]; then
git tag -a $SCRIPT_VERSION -m "version $SCRIPT_VERSION"
fi

下次您修改脚本的版本号并提交您的更改时,您会看到一个新标记添加到您的最新提交中。

关于git - 如何维护受 git 源代码控制的 bash 脚本的版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11935480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com