comparison mercurial/hook.py @ 7787:b8d750daadde

Introduce HG_PREPEND to solve pretxn races - add writepending to flush delayed writes to separate file - add support in hooks for lazy evaluation of callable parameters - add HG_PENDING to pretxn hooks - call writepending if hook is used - pass repo root to hook environment - if HG_PENDING = repo root, we're in pretxn hook - read pending data to make pending changesets visible - filter HG_PENDING in tests/printenv.py
author Matt Mackall <mpm@selenic.com>
date Mon, 16 Feb 2009 19:35:07 -0600
parents 182b7114d35a
children f779e1996e23
comparison
equal deleted inserted replaced
7786:92455c1d6f83 7787:b8d750daadde
68 ui.warn(_('warning: %s hook failed\n') % hname) 68 ui.warn(_('warning: %s hook failed\n') % hname)
69 return r 69 return r
70 70
71 def _exthook(ui, repo, name, cmd, args, throw): 71 def _exthook(ui, repo, name, cmd, args, throw):
72 ui.note(_("running hook %s: %s\n") % (name, cmd)) 72 ui.note(_("running hook %s: %s\n") % (name, cmd))
73 env = dict([('HG_' + k.upper(), v) for k, v in args.iteritems()]) 73
74 env = {}
75 for k, v in args.iteritems():
76 if callable(v):
77 v = v()
78 env['HG_' + k.upper()] = v
79
74 if repo: 80 if repo:
75 cwd = repo.root 81 cwd = repo.root
76 else: 82 else:
77 cwd = os.getcwd() 83 cwd = os.getcwd()
78 r = util.system(cmd, environ=env, cwd=cwd) 84 r = util.system(cmd, environ=env, cwd=cwd)