Show More
@@ -27,6 +27,13 def _pythonhook(ui, repo, name, hname, f | |||
|
27 | 27 | raise util.Abort(_('%s hook is invalid ("%s" not in ' |
|
28 | 28 | 'a module)') % (hname, funcname)) |
|
29 | 29 | modname = funcname[:d] |
|
30 | oldpaths = sys.path[:] | |
|
31 | if hasattr(sys, "frozen"): | |
|
32 | # binary installs require sys.path manipulation | |
|
33 | path, name = os.path.split(modname) | |
|
34 | if path and name: | |
|
35 | sys.path.append(path) | |
|
36 | modname = name | |
|
30 | 37 | try: |
|
31 | 38 | obj = __import__(modname) |
|
32 | 39 | except ImportError: |
@@ -37,6 +44,7 def _pythonhook(ui, repo, name, hname, f | |||
|
37 | 44 | raise util.Abort(_('%s hook is invalid ' |
|
38 | 45 | '(import of "%s" failed)') % |
|
39 | 46 | (hname, modname)) |
|
47 | sys.path = oldpaths | |
|
40 | 48 | try: |
|
41 | 49 | for p in funcname.split('.')[1:]: |
|
42 | 50 | obj = getattr(obj, p) |
@@ -110,9 +118,9 def hook(ui, repo, name, throw=False, ** | |||
|
110 | 118 | if hasattr(cmd, '__call__'): |
|
111 | 119 | r = _pythonhook(ui, repo, name, hname, cmd, args, throw) or r |
|
112 | 120 | elif cmd.startswith('python:'): |
|
113 |
if cmd.count(':') |
|
|
114 | path, cmd = cmd[7:].split(':') | |
|
115 |
mod = extensions.loadpath(path, 'hg |
|
|
121 | if cmd.count(':') >= 2: | |
|
122 | path, cmd = cmd[7:].rsplit(':', 1) | |
|
123 | mod = extensions.loadpath(path, 'hghook.%s' % hname) | |
|
116 | 124 | hookfn = getattr(mod, cmd) |
|
117 | 125 | else: |
|
118 | 126 | hookfn = cmd[7:].strip() |
General Comments 0
You need to be logged in to leave comments.
Login now