Mercurial hook: проверять наборы изменений как файл (ы) исправлений на "сервере" перед последним отправлением

Простой сценарий: я хочу получить доступ к наборам изменений один раз перед отправкой и отправить информацию о файлах различий (в обычном формате git diff... или любом другом формате base64-serialisable) в мой собственный веб-сервис RESTful для проверки. У меня уже есть настройка ловушки pretxnchangegroup.. Я могу получить доступ к узлам, но hg export не показывает ничего нового (поскольку они, вероятно, скрыты, как описано здесь: как я могу отклонить push-сообщения на сервер Mercurial на основе скрипта, не рискуя при этом плохим тягом в это время?), поэтому я думаю, мне придется пройти через Mercurial API.

Проблема: я не "понимаю", как я могу легко получить доступ к информации об обмене файлами в каком-то текстовом формате diff (git diff, что угодно...) из Mercurial API в хуке, в документах API, похоже, ничего нет: https://www.mercurial-scm.org/wiki/MercurialApi

Это только я или это "погружение в ртутную базу кода" No Man's Land? Хотел бы избежать копать так глубоко, но я буду, если необходимо.

1 ответ

Решение

Вам необходимо импортировать модуль patch, У него есть метод diff(repo, prev, node, opts=opts) это дает вам список кусков обратно.

Поищи файл cmdutil.py для примеров, как использовать функцию; этот файл содержит код для hg export (ищи def export).

Другие вопросы по тегам