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
).