Я хочу использовать python для автоматического генерирования вывода, использующего информацию о версии из коммита git (и содержащихся в нем подмодулей версий).
Для чтения этой информации из репозитория я хочу использовать gitpython.Вход является тегом.С помощью этой ссылки легко получить коммит sha, URL репо и т. Д. Без проверки ревизии тега.
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))
К сожалению проверка и обновление занимают много времени, поэтому мне интересно, как получить к этому доступинформация о субмодуле без оформления заказа.Я думаю, что это должно быть возможно ?!-> Но как?
Некоторые вещи, которые мне также интересны:
- Как обеспечить правильное обнаружение измененных URL / путей подмодулей
- Как обеспечитьдобавленные / удаленные / переименованные подмодули правильно обнаружены