Как мне сделать, чтобы мой файл python показывал его ртутный тег или ревизию в качестве версии модуля? - PullRequest
3 голосов
/ 31 марта 2010

Я бы хотел добавить параметр командной строки --version в мое приложение на python, которое будет показывать правильную версию в зависимости от помеченного состояния команды:

Если файл поступил из версии с коротким шестнадцатеричным идентификатором abcdef01, который был помечен TAG, --version должен показать это:

MyApp Version TAG (abcdef01)

Если файл взят из подсказки, --version должен показать это:

MyApp (tip)

Если файл взят из произвольной, не маркированной ревизии abcdef02, --version должно показать это:

MyApp (development, abcdef02)

Возможно ли это? Если да, то как?

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Кто-то указал KeywordExtension, и это определенно один путь.

Для немного большего контроля вы можете создать обновление, записывающее то, что вы хотите, в файл version, который вы не добавляете в само хранилище. Примерно так в hgrc вашего репо:

[hooks]
update = hg id > version.txt

Где version.txt существует в вашем .hgignore, потому что вы не хотите отслеживать изменения в нем. Тогда у вас есть код вашей версии, прочитайте этот файл.

Преимущество использования ловушки по сравнению с KeywordExtension заключается в возможности использовать более сложную логику троллинга тегов.

На самом деле ближайшее расширение может дать вам именно то, что вы хотите:

Цель ближайшего ртутного расширение, чтобы найти ближайший теги из данного набора изменений, либо назад или вперед в наборе изменений древо истории.

По умолчанию теги ищутся в обратном направлении. в истории, но с использованием --contains Опция заставит его искать вперед. Это отвечает на следующие вопросы:

На каком теге основан этот набор изменений на? (без --contains) Какой тег будет включать / содержать этот набор изменений ? (с --contains) Теги поиск по дате, так что ближайший тег во времени будет сообщено. Тем не мение, опция --all сделает расширение поиска по первому тегу на всех возможные ветви.

1 голос
/ 31 марта 2010

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

...