47 return branch |
47 return branch |
48 |
48 |
49 ctx.branch = branch |
49 ctx.branch = branch |
50 return ctx |
50 return ctx |
51 |
51 |
52 oldrepo = repo.__class__ |
52 oldrepocls = repo.__class__ |
53 try: |
53 try: |
54 repo.__class__ = repocls |
54 repo.__class__ = repocls |
55 unxx = repo.filtered('unfiltered-topic') |
55 unxx = repo.filtered('unfiltered-topic') |
56 repo.unfiltered = lambda: unxx |
56 repo.unfiltered = lambda: unxx |
57 if pushoparg: |
57 if pushoparg: |
58 try: |
58 pushop.repo = repo |
59 pushop.repo = repo |
59 summary = orig(pushop) |
60 summary = orig(pushop) |
|
61 finally: |
|
62 pushop.repo = repo |
|
63 else: |
60 else: |
64 summary = orig(repo, remote, outgoing) |
61 summary = orig(repo, remote, outgoing) |
65 for key, value in summary.iteritems(): |
62 for key, value in summary.iteritems(): |
66 if ':' in key: # This is a topic |
63 if ':' in key: # This is a topic |
67 if value[0] is None and value[1]: |
64 if value[0] is None and value[1]: |
68 summary[key] = ([value[1][0]], ) + value[1:] |
65 summary[key] = ([value[1][0]], ) + value[1:] |
69 return summary |
66 return summary |
70 finally: |
67 finally: |
71 if 'unfiltered' in vars(repo): |
68 if 'unfiltered' in vars(repo): |
72 del repo.unfiltered |
69 del repo.unfiltered |
73 repo.__class__ = oldrepo |
70 repo.__class__ = oldrepocls |
74 |
71 |
75 def wireprotobranchmap(orig, repo, proto): |
72 def wireprotobranchmap(orig, repo, proto): |
76 oldrepo = repo.__class__ |
73 oldrepo = repo.__class__ |
77 try: |
74 try: |
78 class repocls(repo.__class__): |
75 class repocls(repo.__class__): |