如何将版本信息添加到作为 ZIP 存档分发的 git 存储库?
How to add version information to a git repository which is distributed as ZIP archive?
我正在寻找将版本信息添加到 ZIP 存档内容的最佳实践,该存档目前由 bitbucket 从 git 存储库创建(HEAD 的状态;git 相关文件会自动删除)。
ZIP 包含顶级目录名称中的 git 提交散列。但是,ZIP 的用户在解压缩后需要重命名目录,并且可能会这样做,即使他们不需要这样做,因此版本信息会丢失。
如果没有 bitbucket 插件,最简单的方法是使用 Jenkins 自动进行版本控制。它试图解决这个问题,但我陷入了逻辑循环,即每次提交都会创建一个新版本,该版本会在版本文件中创建一个更改,该版本文件会创建一个新提交,该新提交会创建一个更改...
如果 zip 存档文件名已经包含相关信息,您需要一个脚本来:
- 记住那个提交名称
- 解压缩存档
- 重命名根文件夹
- 添加一个包含提交名称的文本文件
这是假设 Bitbucket 生成的存档不包含存储库的完整历史,而只包含 HEAD 内容。
我认为 Exporting Your Repository 部分可能是您要查找的内容。
只需在该顶级文件中更改您需要的任何内容即可,即您的 LAST_COMMIT 文件中只会包含提交哈希。
$Format:%H
您的 .gitattributes 文件将完全相同:
LAST_COMMIT export-subst
git-archive
有一个 --remote
标志,如果您想一次完成所有操作,但我以前没有使用过。
https://git-scm.com/docs/git-archive#Documentation/git-archive.txt---remoteltrepogt
我正在寻找将版本信息添加到 ZIP 存档内容的最佳实践,该存档目前由 bitbucket 从 git 存储库创建(HEAD 的状态;git 相关文件会自动删除)。
ZIP 包含顶级目录名称中的 git 提交散列。但是,ZIP 的用户在解压缩后需要重命名目录,并且可能会这样做,即使他们不需要这样做,因此版本信息会丢失。
如果没有 bitbucket 插件,最简单的方法是使用 Jenkins 自动进行版本控制。它试图解决这个问题,但我陷入了逻辑循环,即每次提交都会创建一个新版本,该版本会在版本文件中创建一个更改,该版本文件会创建一个新提交,该新提交会创建一个更改...
如果 zip 存档文件名已经包含相关信息,您需要一个脚本来:
- 记住那个提交名称
- 解压缩存档
- 重命名根文件夹
- 添加一个包含提交名称的文本文件
这是假设 Bitbucket 生成的存档不包含存储库的完整历史,而只包含 HEAD 内容。
我认为 Exporting Your Repository 部分可能是您要查找的内容。
只需在该顶级文件中更改您需要的任何内容即可,即您的 LAST_COMMIT 文件中只会包含提交哈希。
$Format:%H
您的 .gitattributes 文件将完全相同:
LAST_COMMIT export-subst
git-archive
有一个 --remote
标志,如果您想一次完成所有操作,但我以前没有使用过。
https://git-scm.com/docs/git-archive#Documentation/git-archive.txt---remoteltrepogt