Настройте расширение Mercurial Keyword для создания ключевых слов Subversion - PullRequest
2 голосов
/ 28 марта 2012

Мне нравится настраивать расширение Mercurial Keyword для поддержки всех ключевых слов Subversion , то есть расширять их точно так же, как это делает Subversion.Я ищу это для использования Mercurial вместе с моим пакетом LaTeX svn-multi , который позволяет пользователям читать и набирать эти метаданные в своих документах LaTeX.К сожалению, метод синтаксического анализа LaTeX не очень гибок и выдает жесткую синтаксическую ошибку, если данные не в жестко заданном формате.(В пакет уже включены некоторые проверки работоспособности входных данных, но они ограничены.) Я понимаю, что обе системы выдают разные номера ревизий, но с помощью короткой, целочисленной формы идентификатора Mercurial это нужно сделать.

Пока у меня естьследующая конфигурация:

[keywordmaps]
Author = {author|user}
LastChangedBy = {author|user}
Date = {date|utcdate}
LastChangedDate = {date|utcdate}
Revision = {node|short}
Rev = {node|short}
LastChangedRevision = {node|short}
HeadURL = {root}/{file}
URL = {root}/{file}
Id = {file|basename} {node|short} {date|utcdate} {author|user}

Author уже в порядке, но у меня возникают трудности с получением Date и Revision в правильном формате.У меня проблемы с получением информации обо всех возможных заменах и их фильтрах.{date|utcdate} дает мне формат 2012/03/28 19:18:19, но мне нужно, как 2006-07-22 21:42:37 -0700 (Sat, 22 Jul 2006).Также как получить целочисленную версию номера ревизии (которая, я знаю, не уникальна для репозиториев, но достаточно хороша в этом случае).Можно ли заменить цель default pull / push на HeadURL?

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Для Revision ответить просто: hg help templating

 rev           Integer. The repository-local changeset revision number.

Все фильтры, относящиеся к дате, также можно найти в этой справке

JFYI, запись журнала со всеми фильтрами даты

Исходный журнал для справки

>hg log -r tip
changeset:   36:923cd64bcd36
tag:         tip
user:        Ray Bream <*@*>
date:        Sun Oct 30 10:16:00 2011 +0600
summary:     Синхронизация с 1.6

Фильтры

>hg log -r tip --template "{date|age}"
5 months ago

>hg log -r tip --template "{date|date}"
Sun Oct 30 10:16:00 2011 +0600

>hg log -r tip --template "{date|hgdate}"
1319948160 -21600

>hg log -r tip --template "{date|isodate}"
2011-10-30 10:16 +0600

>hg log -r tip --template "{date|isodatesec}"
2011-10-30 10:16:00 +0600

>hg log -r tip --template "{date|localdate}"
1319948160.0-21600

>hg log -r tip --template "{date|rfc3339date}"
2011-10-30T10:16:00+06:00

>hg log -r tip --template "{date|rfc822date}"
Sun, 30 Oct 2011 10:16:00 +0600

>hg log -r tip --template "{date|shortdate}"
2011-10-30

Ближайшая итерация к дате SVN будет {date|isodate} ({date|rfc822date}), но она содержит время в скобках

2011-10-30 10:16 +0600 (Sun, 30 Oct 2011 10:16:00 +0600)

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

0 голосов
/ 11 марта 2014

Я решил проблему с этими определениями ключевых слов в .hgrc:

LastChangedBy = {author|user}
LastChangedDate = {date|svnisodate}
LastChangedRevision = {rev}
HeadURL = {root}/{file}

Надеюсь, это поможет.

...