我想配置Mercurial Keyword Extension以支持所有Subversion keywords,即以Subversion的确切方式展开它们。我正在寻找这个以便将Mercurial和我的LaTeX包svn-multi一起使用,它允许用户在他们的LaTeX文档中读取和排版这些元数据。不幸的是,LaTeX解析方法不是很灵活,如果数据不是硬编码格式,会产生硬语法错误。 (该软件包已包含一些输入完整性检查,但它们是有限的。) 我意识到两个系统都会产生不同的版本号,但是使用Mercurial的短整数id形式应该这样做。
到目前为止,我有以下配置:
[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
拉/推目标替换为HeadURL
?
答案 0 :(得分:3)
对于修订答案很简单: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命令甚至系统命令
答案 1 :(得分:0)
我在.hgrc中解决了这些关键字定义的问题:
LastChangedBy = {author|user}
LastChangedDate = {date|svnisodate}
LastChangedRevision = {rev}
HeadURL = {root}/{file}
希望它有所帮助。