Менее частые / подробные уведомления для hg push

Мой проект использует hgext.notify. В настоящее время входящие.notify = отдельные сообщения на каждом наборе изменений. Учитывая уведомления группы изменений, но даже это содержит информацию о каждом наборе изменений, просто все в одном большом электронном письме.

Вот проблема:

Мой стиль работы - "регистрируйся рано и часто". Я делаю много маленьких чеков, обычно на ветках. Задачи ветки. В конечном итоге интегрированы.

Мои товарищи по команде не любят видеть сообщения для всех моих проверок в моих ветках задач.

Мы рассматриваем возможность использования расширения редактирования истории, такого как коллапс или гистедит, чтобы уменьшить многословие, но я не люблю терять историю. Я просто хочу не беспокоить их каждым изменением.

Q: есть ли способ, некоторая конфигурация для существующего хука или какое-то альтернативное расширение hg, которое можно настроить для уведомлений как folllws;

  1. одно сообщение на группу изменений (это нормально)

  2. сообщение, предоставленное одним пользователем для каждой группы изменений, а не просто объединение всех сообщений набора изменений ветви

  3. отфильтровывать только сообщения изменений, скажем, для транка (ветвь по умолчанию на языке hg). Т.е. оставляйте в ветке сообщения о ревизиях, но не отправляйте электронную почту.

    (Примечание: мои изменения обычно включают в себя несколько наборов изменений в ветви, а затем объединение по умолчанию. Поэтому недостаточно просто отфильтровать всю группу изменений в зависимости от того, какие ветви затронуты.)

  4. diffstats не между наконечником и каждым изменением в ветви, а только между "важными" наборами изменений в стволе (ветвь по умолчанию) - что может быть даже новым изменением в стволе.

1 ответ

Решение

Боюсь, такого расширения не существует. Расширение уведомлений - это просто основной способ отправки электронных писем с небольшим пространством для настройки.

Похоже, у вас есть конкретное представление о том, что вы хотите. Я предлагаю вам посмотреть, можете ли вы сформулировать его как набор ревизий, а затем просто использовать hg log в changegroup крюк. Передайте вывод mail и у вас есть очень простое расширение для уведомлений, которое вы можете настроить по своему вкусу!

Я хочу сказать, что расширение уведомлений не так уж сложно и во многих случаях его можно заменить подходящим вызовом hg log, Вы даже можете использовать собственный шаблон для hg log если вы хотите изменить вывод больше, чем что hg log -v или же hg log --patch делает.

Сложная часть (и часть, которая не совсем понятна из вашего вопроса) состоит в том, чтобы отфильтровать точно правильные наборы изменений. Вы упоминаете "важные" наборы изменений в пункте 4 выше, но я не совсем уверен, что делает набор изменений "важным". Если это важно, когда происходит слияние из функциональной ветви в defaultтогда что-то вроде этого может быть началом:

hg log -r "$HG_NODE:tip and children(not branch(default)) and branch(default)"

Взяв дочерние наборы измененийdefault наборы изменений и пересекаются с наборами изменений на defaultмы получаем именно точки слияния, в которые были интегрированы ветви объектов.

Я сожалею, что ответ настолько общий, но я думаю, что вам лучше всего написать небольшой собственный скрипт оболочки для того, что вы хотите.

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