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] |
|
|
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 = kw |
|
|
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 kw |
|
|
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