В Mercurial, как я могу видеть, что ревизии переместились на репо за последние 24 часа?

У меня есть репозиторий Mercurial, который несколько человек нажимают на свои локальные репозитории. Я хотел бы иметь возможность запросить этот центральный репозиторий для всех изменений, которые прибыл в этот репозиторий за последние 24 часа, в частности не только, которые были совершены за последние 24 часа.

Параметр hg log -date не выполняет то, что мне нужно. Он только уточняет выбор в зависимости от даты фиксации. Таким образом, hg log -date -1 возвращает мне исправления, совершенные со вчерашнего дня, но не исправления, совершенные, скажем, три дня назад, но только нажали на это репо сегодня.

Если я могу найти номер ревизии (или id) самой старой версии, прибывающей на репо менее 24 часов назад, это могло бы сделать трюк; но я ничего не вижу - даже в hg help revsets - похоже, что это сработает.

Ответ 1

Вы можете использовать pushlog, расширение для Mercurial, которое вы настраиваете на стороне сервера.

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

К сожалению, я не знаю больше об этом, чем о том, что на этой странице, я спросил по каналу IRC Mercurial и получил там это имя.

Здесь вы можете увидеть пример журнала: calc pushlog.

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

Kiln activity log

Ответ 2

Я не знаю встроенного метода для этого, но вы можете получить эту информацию обходным путем. Напишите script для клонирования вашего основного репо каждый день и назовите его соответствующим образом; скажем project1-2011-4-31, project1-2011-5-1\. Тогда просто посмотреть, что происходит от одного к другому:

cd %projectdirectory%\dateclones
cd project1-2011-3-25
hg incoming ..\project1-2011-5-1

Дала бы вам все изменения, которые были нажаты, когда клонировали project1-2011-3-25 и клонировали project1-2011-5-1.