2012-04-17 2 views
6

Возможно ли узнать, когда определенная фиксация была извлечена из удаленного хранилища и файлы, обновленные Mercurial?Получите даты вытаскивания и обновления в Mercurial

Точнее, я сделал hg pull -u несколько дней назад, и теперь я хотел бы узнать, загрузило ли это притяжение только последнее коммитирование или были какие-то фиксации, которые еще не были вытащены, получая их также.

hg log, похоже, датирует даты совершения, но ничего не сообщается об обновлениях. Является ли эта информация в любом месте?

ответ

8

Эта информация не записана Mercurial. Репозиторий Mercurial - это всего лишь контейнер для наборов изменений, и Mercurial не хранит, как (или когда) внесенные изменения в репозиторий.

Вы можете настроить крючки для этого, хотя вам придется самим создавать сценарии. Очень зачаточном система будет

[hooks] 
pre-pull = (date; hg root; hg tip) >> ~/.pull-log 
post-pull = hg tip >> ~/.pull-log 

Это будет регистрировать текущую дату, текущее хранилище, и текущий наконечник в ~/.pull-log непосредственно перед каждым hg pull. После вытягивания новый наконечник записывается. Вы можете создавать скрипты, которые анализируют файл журнала, чтобы извлекать информацию о том, что делало каждое нажатие.

hg log кажется, дает дату коммитов, но ничего об обновлениях

Да, hg log не касается только с сохраненной историей (ревизии) и рабочие операции копирования, как обновление не является частью записанная история.

Наконец, позвольте мне упомянуть, что это первый раз, когда я видел, как кто-то спрашивает «журнал тяги». Однако встречается довольно часто: есть сценарии для поддержки «push-журнала» на сервере, чтобы узнать, кто толкал то, что и когда. Это делается, например, Mozilla. См. this README для получения некоторых инструкций по началу работы.

+0

Спасибо за ваш ответ, и особенно за предоставленную мне идею решения для возможных будущих потребностей , Очень хорошо. – nIcO

+0

@nIcO: Добро пожаловать! Я добавил немного о пуговицах - это противоположная концепция. Это, надеюсь, будет полезно для других в будущем. –

1

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

[hooks] 
pre-update = (echo "---------------------------------"; date --rfc-3339=s; hg root; echo "pre-update:"; hg identify --id --branch) >> .hgupdates 
post-update = (echo "post-update:"; hg identify --id --branch) >> .hgupdates 

вышеуказанные крючки производят запись журнала, как это для каждого обновления времени Ртути бежать:

2015-12-23 00:44:31+02:00 
/var/www/my/project 
pre-update: 
802120d1d3a0 somebranch 
post-update: 
302720d1d3d2 otherbranch 

Это также работает при обновлении ртуть работать без определенного пересмотра флага (-r) набор

Смежные вопросы