Show More
@@ -191,8 +191,41 b' def push(repo, remote, force=False, revs' | |||
|
191 | 191 | _pushbookmark(pushop) |
|
192 | 192 | return pushop.ret |
|
193 | 193 | |
|
194 | # list of steps to perform discovery before push | |
|
195 | pushdiscoveryorder = [] | |
|
196 | ||
|
197 | # Mapping between step name and function | |
|
198 | # | |
|
199 | # This exists to help extensions wrap steps if necessary | |
|
200 | pushdiscoverymapping = {} | |
|
201 | ||
|
202 | def pushdiscovery(stepname): | |
|
203 | """decorator for function performing discovery before push | |
|
204 | ||
|
205 | The function is added to the step -> function mapping and appended to the | |
|
206 | list of steps. Beware that decorated function will be added in order (this | |
|
207 | may matter). | |
|
208 | ||
|
209 | You can only use this decorator for a new step, if you want to wrap a step | |
|
210 | from an extension, change the pushdiscovery dictionary directly.""" | |
|
211 | def dec(func): | |
|
212 | assert stepname not in pushdiscoverymapping | |
|
213 | pushdiscoverymapping[stepname] = func | |
|
214 | pushdiscoveryorder.append(stepname) | |
|
215 | return func | |
|
216 | return dec | |
|
217 | ||
|
218 | ||
|
219 | ||
|
194 | 220 | def _pushdiscovery(pushop): |
|
195 | # discovery | |
|
221 | """Run all discovery steps""" | |
|
222 | for stepname in pushdiscoveryorder: | |
|
223 | step = pushdiscoverymapping[stepname] | |
|
224 | step(pushop) | |
|
225 | ||
|
226 | @pushdiscovery('changeset') | |
|
227 | def _pushdiscoverychangeset(pushop): | |
|
228 | """discover the changeset that need to be pushed""" | |
|
196 | 229 | unfi = pushop.repo.unfiltered() |
|
197 | 230 | fci = discovery.findcommonincoming |
|
198 | 231 | commoninc = fci(unfi, pushop.remote, force=pushop.force) |
General Comments 0
You need to be logged in to leave comments.
Login now