2012-03-28 4 views
2

Ich möchte die Mercurial Keyword Extension so konfigurieren, dass sie alle Subversion keywords unterstützt, d. H., Um sie genau so zu erweitern, wie es Subversion tut. Ich suche nach diesem, um Mercurial zusammen mit meinem LaTeX Paket svn-multi zu benutzen, das Benutzern erlaubt, diese Metadaten in ihren LaTeX Dokumenten zu lesen und zu setzen. Leider ist die LaTeX-Parsing-Methode nicht sehr flexibel und erzeugt einen harten Syntaxfehler, wenn die Daten nicht im Hardcoded-Format vorliegen. (Das Paket enthält bereits einige Eingabesanitätsüberprüfungen, aber sie sind begrenzt.) Ich stelle fest, dass beide Systeme verschiedene Revisionsnummern erzeugen, aber die Verwendung der kurzen, ganzzahligen ID-Form von Mercurial sollte es tun.Konfigurieren Sie die Mercurial-Schlüsselworterweiterung, um Subversion-Schlüsselwörter zu erzeugen

Bisher habe ich die folgende Konfiguration:

[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} 

Die Author ist schon in Ordnung, aber ich habe Schwierigkeiten, die Date und Revision in dem richtigen Format zu bekommen. Ich habe Probleme, Informationen über alle möglichen Ersetzungen und deren Filter zu erhalten. {date|utcdate} gibt mir das Format 2012/03/28 19:18:19, aber ich brauche es wie 2006-07-22 21:42:37 -0700 (Sat, 22 Jul 2006). Auch, wie man die ganzzahlige Version der Revisionsnummer bekommt (die, ich weiß, nicht über Repositories eindeutig ist, aber in diesem Fall gut genug). Ist es möglich, das default Pull/Push-Ziel als HeadURL zu ersetzen?

Antwort

3

Für Revision Antwort ist einfach: hg help templating

rev   Integer. The repository-local changeset revision number. 

Alle datumsbezogenen Filter können auch in dieser Hilfe

JFYI, Protokollaufzeichnung mit allen Datumsfilter

Original-Log-Referenz gefunden werden

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

Filter

>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 

Nächste Iteration SVN Datum {date|isodate} ({date|rfc822date}) sein wird, aber es ist Zeit in Klammern enthalten

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

Hinweis: AFAIK können Keyword-Definition nicht nur Schlüsselwörter verwenden, sondern auch alle hg Befehle und sogar System-Befehle

0

ich das Problem mit diesen Definitionen von Schlüsselwörtern in .hgrc gelöst:

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

Hoffnung es hilft.