我想使用python来自动生成使用git commit(以及所包含的子句版本)中的版本信息的输出。
要从存储库中读取此信息,我想使用gitpython。 输入是标签。通过此参考,无需检出标记的修订版本,即可轻松获取提交信息,回购网址等。
from git import Repo
repo = Repo(repo_dir)
url = repo.remote().url
commit = release.hexsha
现在涉及修订中包含的子模块。在这里,我想输入名称,提交,路径,URL。经过大量尝试后,我不得不最终签出标签来更新子模块,然后获取此信息。
[...]
# checking out tag revision to get submodule info
repo.git.checkout(tag)
for submodule in repo.submodules:
submodule.update(init=True)
module = dict()
module["name"] = submodule.__str__()
module["commit"] = submodule.hexsha
module["path"] = submodule.path
module["url"] = submodule.url
module["tag"] = str(next((tag for tag in repo.tags if tag.commit == repo.head.commit), None))
不幸的是,检出和更新花费大量时间,因此我想知道如何在不检出的情况下访问此子模块信息。我认为这应该可行吗? ->但是呢?
有些事情我也很好奇: