##// END OF EJS Templates
keyword: offer svn-like default keywordmaps...
Christian Ebert -
r11214:b05ec0cc default
parent child Browse files
Show More
@@ -35,8 +35,8 b' Keywords are only expanded in local repo'
35 35 change history. The mechanism can be regarded as a convenience for the
36 36 current user or for archive distribution.
37 37
38 Configuration is done in the [keyword] and [keywordmaps] sections of
39 hgrc files.
38 Configuration is done in the [keyword], [keywordset] and [keywordmaps]
39 sections of hgrc files.
40 40
41 41 Example::
42 42
@@ -45,6 +45,10 b' Example::'
45 45 **.py =
46 46 x* = ignore
47 47
48 [keywordset]
49 # prefer svn- over cvs-like default keywordmaps
50 svn = True
51
48 52 NOTE: the more specific you are in your filename patterns the less you
49 53 lose speed in huge repositories.
50 54
@@ -108,14 +112,13 b' svnutcdate = lambda x: util.datestr((x[0'
108 112 kwtools = {'templater': None, 'hgcmd': '', 'inc': [], 'exc': ['.hg*']}
109 113
110 114
111 class kwtemplater(object):
112 '''
113 Sets up keyword templates, corresponding keyword regex, and
114 provides keyword substitution functions.
115 '''
115 def _defaultkwmaps(ui):
116 '''Returns default keywordmaps according to keywordset configuration.'''
116 117 templates = {
117 118 'Revision': '{node|short}',
118 119 'Author': '{author|user}',
120 }
121 kwsets = ({
119 122 'Date': '{date|utcdate}',
120 123 'RCSfile': '{file|basename},v',
121 124 'RCSFile': '{file|basename},v', # kept for backwards compatibility
@@ -123,7 +126,21 b' class kwtemplater(object):'
123 126 'Source': '{root}/{file},v',
124 127 'Id': '{file|basename},v {node|short} {date|utcdate} {author|user}',
125 128 'Header': '{root}/{file},v {node|short} {date|utcdate} {author|user}',
126 }
129 }, {
130 'Date': '{date|svnisodate}',
131 'Id': '{file|basename},v {node|short} {date|svnutcdate} {author|user}',
132 'LastChangedRevision': '{node|short}',
133 'LastChangedBy': '{author|user}',
134 'LastChangedDate': '{date|svnisodate}',
135 })
136 templates.update(kwsets[ui.configbool('keywordset', 'svn')])
137 return templates
138
139 class kwtemplater(object):
140 '''
141 Sets up keyword templates, corresponding keyword regex, and
142 provides keyword substitution functions.
143 '''
127 144
128 145 def __init__(self, ui, repo):
129 146 self.ui = ui
@@ -137,6 +154,8 b' class kwtemplater(object):'
137 154 if kwmaps: # override default templates
138 155 self.templates = dict((k, templater.parsestring(v, False))
139 156 for k, v in kwmaps)
157 else:
158 self.templates = _defaultkwmaps(self.ui)
140 159 escaped = map(re.escape, self.templates.keys())
141 160 kwpat = r'\$(%s)(: [^$\n\r]*? )??\$' % '|'.join(escaped)
142 161 self.re_kw = re.compile(kwpat)
@@ -322,14 +341,14 b' def demo(ui, repo, *args, **opts):'
322 341 kwmaps = dict(ui.configitems('keywordmaps'))
323 342 elif opts.get('default'):
324 343 ui.status(_('\n\tconfiguration using default keyword template maps\n'))
325 kwmaps = kwtemplater.templates
344 kwmaps = _defaultkwmaps(ui)
326 345 if uikwmaps:
327 346 ui.status(_('\tdisabling current template maps\n'))
328 347 for k, v in kwmaps.iteritems():
329 348 ui.setconfig('keywordmaps', k, v)
330 349 else:
331 350 ui.status(_('\n\tconfiguration using current keyword template maps\n'))
332 kwmaps = dict(uikwmaps) or kwtemplater.templates
351 kwmaps = dict(uikwmaps) or _defaultkwmaps(ui)
333 352
334 353 uisetup(ui)
335 354 reposetup(ui, repo)
General Comments 0
You need to be logged in to leave comments. Login now