[PATCH 2 of 6 mergedriver] hook: factor out determination of hooks from running them
Siddharth Agarwal
sid0 at fb.com
Wed Oct 14 18:52:30 CDT 2015
# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1444864411 25200
# Wed Oct 14 16:13:31 2015 -0700
# Node ID cac30541d1702220d3737fc85382ca136cec06d9
# Parent 2a42915e11423eaa1e127e12333a890655c8bb76
hook: factor out determination of hooks from running them
This will allow other code to run a predetermined series of hooks.
diff --git a/mercurial/hook.py b/mercurial/hook.py
--- a/mercurial/hook.py
+++ b/mercurial/hook.py
@@ -162,14 +162,19 @@ def hook(ui, repo, name, throw=False, **
if not ui.callhooks:
return False
+ hooks = []
+ for hname, cmd in _allhooks(ui):
+ if hname.split('.')[0] == name and cmd:
+ hooks.append((hname, cmd))
+
+ return runhooks(ui, repo, name, hooks, throw=throw, **args)
+
+def runhooks(ui, repo, name, hooks, throw=False, **args):
r = False
oldstdout = -1
try:
- for hname, cmd in _allhooks(ui):
- if hname.split('.')[0] != name or not cmd:
- continue
-
+ for hname, cmd in hooks:
if oldstdout == -1 and _redirect:
try:
stdoutno = sys.__stdout__.fileno()
More information about the Mercurial-devel
mailing list