hgext3rd/topic/discovery.py
changeset 2695 b4824e169f18
parent 2676 10dedac0d82e
child 2696 a32afe67e8a6
equal deleted inserted replaced
2694:8a222745a71c 2695:b4824e169f18
    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__):