308 if opts.get('default'): |
308 if opts.get('default'): |
309 kwstatus = 'default' |
309 kwstatus = 'default' |
310 kwmaps = kwtemplater.templates |
310 kwmaps = kwtemplater.templates |
311 if ui.configitems('keywordmaps'): |
311 if ui.configitems('keywordmaps'): |
312 # override maps from optional rcfile |
312 # override maps from optional rcfile |
313 for k, v in kwmaps.items(): |
313 for k, v in kwmaps.iteritems(): |
314 ui.setconfig('keywordmaps', k, v) |
314 ui.setconfig('keywordmaps', k, v) |
315 elif args: |
315 elif args: |
316 # simulate hgrc parsing |
316 # simulate hgrc parsing |
317 rcmaps = ['[keywordmaps]\n'] + [a + '\n' for a in args] |
317 rcmaps = ['[keywordmaps]\n'] + [a + '\n' for a in args] |
318 fp = repo.opener('hgrc', 'w') |
318 fp = repo.opener('hgrc', 'w') |
327 extension = '%s = %s' % (k, v) |
327 extension = '%s = %s' % (k, v) |
328 break |
328 break |
329 demostatus('config using %s keyword template maps' % kwstatus) |
329 demostatus('config using %s keyword template maps' % kwstatus) |
330 ui.write('[extensions]\n%s\n' % extension) |
330 ui.write('[extensions]\n%s\n' % extension) |
331 demoitems('keyword', ui.configitems('keyword')) |
331 demoitems('keyword', ui.configitems('keyword')) |
332 demoitems('keywordmaps', kwmaps.items()) |
332 demoitems('keywordmaps', kwmaps.iteritems()) |
333 keywords = '$' + '$\n$'.join(kwmaps.keys()) + '$\n' |
333 keywords = '$' + '$\n$'.join(kwmaps.keys()) + '$\n' |
334 repo.wopener(fn, 'w').write(keywords) |
334 repo.wopener(fn, 'w').write(keywords) |
335 repo.add([fn]) |
335 repo.add([fn]) |
336 path = repo.wjoin(fn) |
336 path = repo.wjoin(fn) |
337 ui.note(_('\n%s keywords written to %s:\n') % (kwstatus, path)) |
337 ui.note(_('\n%s keywords written to %s:\n') % (kwstatus, path)) |
462 _p1 = _p2 = None |
462 _p1 = _p2 = None |
463 try: |
463 try: |
464 wlock = self.wlock() |
464 wlock = self.wlock() |
465 lock = self.lock() |
465 lock = self.lock() |
466 # store and postpone commit hooks |
466 # store and postpone commit hooks |
467 commithooks = [] |
467 commithooks = {} |
468 for name, cmd in ui.configitems('hooks'): |
468 for name, cmd in ui.configitems('hooks'): |
469 if name.split('.', 1)[0] == 'commit': |
469 if name.split('.', 1)[0] == 'commit': |
470 commithooks.append((name, cmd)) |
470 commithooks[name] = cmd |
471 ui.setconfig('hooks', name, None) |
471 ui.setconfig('hooks', name, None) |
472 if commithooks: |
472 if commithooks: |
473 # store parents for commit hook environment |
473 # store parents for commit hook environment |
474 if p1 is None: |
474 if p1 is None: |
475 _p1, _p2 = repo.dirstate.parents() |
475 _p1, _p2 = repo.dirstate.parents() |
486 date=date, match=match, force=force, |
486 date=date, match=match, force=force, |
487 force_editor=force_editor, |
487 force_editor=force_editor, |
488 p1=p1, p2=p2, extra=extra) |
488 p1=p1, p2=p2, extra=extra) |
489 |
489 |
490 # restore commit hooks |
490 # restore commit hooks |
491 for name, cmd in commithooks: |
491 for name, cmd in commithooks.iteritems(): |
492 ui.setconfig('hooks', name, cmd) |
492 ui.setconfig('hooks', name, cmd) |
493 if node is not None: |
493 if node is not None: |
494 _overwrite(ui, self, node=node) |
494 _overwrite(ui, self, node=node) |
495 repo.hook('commit', node=node, parent1=_p1, parent2=_p2) |
495 repo.hook('commit', node=node, parent1=_p1, parent2=_p2) |
496 return node |
496 return node |