96 if pathurl.islocal(): |
96 if pathurl.islocal(): |
97 return util.posixfile(pathurl.localpath(), 'rb') |
97 return util.posixfile(pathurl.localpath(), 'rb') |
98 else: |
98 else: |
99 return url.open(ui, path) |
99 return url.open(ui, path) |
100 |
100 |
|
101 # a list of (ui, repo) functions called for wire peer initialization |
|
102 wirepeersetupfuncs = [] |
|
103 |
101 def _peerorrepo(ui, path, create=False): |
104 def _peerorrepo(ui, path, create=False): |
102 """return a repository object for the specified path""" |
105 """return a repository object for the specified path""" |
103 obj = _peerlookup(path).instance(ui, path, create) |
106 obj = _peerlookup(path).instance(ui, path, create) |
104 ui = getattr(obj, "ui", ui) |
107 ui = getattr(obj, "ui", ui) |
105 for name, module in extensions.extensions(ui): |
108 for name, module in extensions.extensions(ui): |
106 hook = getattr(module, 'reposetup', None) |
109 hook = getattr(module, 'reposetup', None) |
107 if hook: |
110 if hook: |
108 hook(ui, obj) |
111 hook(ui, obj) |
|
112 if not obj.local(): |
|
113 for f in wirepeersetupfuncs: |
|
114 f(ui, obj) |
109 return obj |
115 return obj |
110 |
116 |
111 def repository(ui, path='', create=False): |
117 def repository(ui, path='', create=False): |
112 """return a repository object for the specified path""" |
118 """return a repository object for the specified path""" |
113 peer = _peerorrepo(ui, path, create) |
119 peer = _peerorrepo(ui, path, create) |