diff -r 926a06f7a353 -r 9df9444e96ec mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Nov 28 15:05:26 2011 +0100 +++ b/mercurial/localrepo.py Mon Nov 28 01:18:15 2011 +0100 @@ -2003,21 +2003,24 @@ cl.finalize(trp) tr.close() + + def postaddchangegroup(): + if changesets > 0: + # forcefully update the on-disk branch cache + self.ui.debug("updating the branch cache\n") + self.updatebranchcache() + self.hook("changegroup", node=hex(cl.node(clstart)), + source=srctype, url=url) + + for n in added: + self.hook("incoming", node=hex(n), source=srctype, + url=url) + self._postrelease(postaddchangegroup) + finally: tr.release() if lock: lock.release() - - if changesets > 0: - # forcefully update the on-disk branch cache - self.ui.debug("updating the branch cache\n") - self.updatebranchcache() - self.hook("changegroup", node=hex(cl.node(clstart)), - source=srctype, url=url) - - for n in added: - self.hook("incoming", node=hex(n), source=srctype, url=url) - # never return 0 here: if dh < 0: return dh - 1