2010-02-01 2 views
3

Где я могу разместить код, который будет запускаться после каждого совершения, который я делаю с помощью меркуриального? В частности, я хотел бы сохранить файл с именем последним внутри папки .hg в корне моего проекта - этот файл будет содержать номер версии и хеш-код для последней фиксации. На этой же теме, как я могу получить их в python?mercurial - Я хочу добавить некоторый код для запуска после фиксации

# get mercurial version hash 
ver = ? 

# get mercurial revision number 
rev = ? 

# is there a shortcut to this folder through mercurial? 
f = open('/path/to/.hg/latest', 'w') 
f.write('ver=%s\nrev=%d' % (str(ver), int(rev))) 
f.close 

EDIT: Я был в состоянии выполнить выше с крючками (в .hg/hgrc):

[hooks] 
precommit= echo node=`hg tip --template {node}` > tip && echo rev=`hg tip --template {rev}` >> tip && hg add tip 

Файл с информацией острия создается успешно, но я бы тоже как добавить его к текущему фиксации с hg add tip, в котором меркурийный процесс застревает в ожидании блокировки, видимо, находящейся в ожидании фиксации. Есть ли способ обойти его так, чтобы файл, созданный во время/pre commit, был добавлен к нему? Благодарю.

ответ

5

конкретно Вы, кажется, хотите совершить крюк, который есть учебник для

, конечно, это звучит как то, что вы действительно хотите hg tip

+0

рт.ст. наконечник на самом деле не последний коммит (если вы потянете), но этого должно быть достаточно для op – Macke

+0

да, неясно, хотят ли они чаевые или нет, но это может быть вариант, поэтому я упомянул об этом –

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