gitPython получает подмодуль коммит hexsha без проверки - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу использовать 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 / путей подмодулей
  • Как обеспечитьдобавленные / удаленные / переименованные подмодули правильно обнаружены
...