Получение текущего имени ветки с помощью dulwich - PullRequest
0 голосов
/ 09 ноября 2019

Я создаю реализацию Git CLI на чистом python и использую dulwich для бэкэнда. Я пытаюсь получить текущее название ветви. Я просмотрел документацию Дульвича, но не смог выяснить, как это сделать.

Ответы [ 2 ]

1 голос
/ 09 ноября 2019

Активная ветвь - это та ветка, на которую в данный момент указывает HEAD. Вы можете получить этот реф в Дульвиче, используя что-то вроде этого:

 >>> from dulwich.repo import Repo
 >>> x = Repo('.')
 >>> ref_chain, commit_sha = x.refs.follow(b'HEAD')
 >>> ref_chain[1]
 b'refs/heads/master'

Теперь в мастере есть также функция dulwich.porcelain.active_branch, которая может сделать это за вас.

0 голосов
/ 09 ноября 2019

Это мой последний результат, который удаляет исходные ссылки / заголовки / префиксы:

>>> from dulwich.repo import Repo
>>> import re
>>> repo = Repo('.')
>>> (_, ref), _ = repo.refs.follow(b'HEAD')
>>> match = re.search(r'/([^/]+)$', ref.decode('utf-8')
>>> match[1]
'master'
...