Как Вы получаете доступ к сообщению о фиксации в Подвижном незавершенном рычаге?

Я пробовал

def debug_hook(ui, repo, **kwargs):
    changectx = repo[None]
    ui.status('change.desc: %s\n' % changectx.description())
    return True

Но это всегда печатает пустую строку. Это вызвано тем, что это - рычаг перед фиксацией, и сообщение еще не доступно? Или я просто пропускаю что-то очевидное?

6
задан Michal Sznajder 21 September 2011 в 21:04
поделиться

2 ответа

Оказалось, что в моем первоначальном подходе есть две ошибки:

  1. Как указал jk , событие precommit происходит до фиксации, поэтому метаданные для фиксации обрабатывается еще не существует. При использовании pretxncommit вместо этого метаданные существуют, но транзакция еще не зафиксирована в базе данных.
  2. Использование changectx = repo [None] дает вам контекст изменения для рабочего каталога. Но нам нужна информация о текущем коммите, поэтому использование changectx = repo ['tip'] вместо этого дает нам самые последние метаданные.

Обратите внимание, что если вы используете changectx = repo ['tip'] с событием precommit , вы фактически получите обработанный последний коммит, а не текущий, с которым вы работаете. на.

8
ответ дан 10 December 2019 в 00:36
поделиться

Думаю, вы правы, что в режиме предварительной фиксации сообщения еще не существует. если вы используете pretxncommit, он будет, но я не уверен на 100%, что он позволяет вам делать в этот момент, поскольку транзакция почти завершена.

2
ответ дан 10 December 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: