comparison mercurial/localrepo.py @ 17670:9dbd5fa6d301

filter: `updatebranchcache` during `addchangegroup` instead of after lock The forced recomputation of the branch cache was introduced by `ee317dbfb9d0`. Back there, `addchangegroup` did not handle any lock logic. Later `ee1ed6afac21` introduced lock logic to `addchangegroup`. Its description does not explain why the `updatebranchcache` call is made outside locking. I believe that the lock was released there because it fit well with the transaction release already in the code. Finally `926a06f7a353` moved all "unlocked" code of `addchangegroup` to an `repo._afterlock` callback. I do not think that the call to `updatebranchcache()` requires to be done outside locking. That may even be a bad idea to do so. Bringing this call back in the `addchangegroup` function makes the flow simpler and eases the following up changelog level filtering business.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Mon, 03 Sep 2012 14:03:38 +0200
parents 1dc37491e9fb
children 8575f4a2126e
comparison
equal deleted inserted replaced
17669:405b5f8fdad7 17670:9dbd5fa6d301
2437 cl.finalize(trp) 2437 cl.finalize(trp)
2438 2438
2439 tr.close() 2439 tr.close()
2440 2440
2441 if changesets > 0: 2441 if changesets > 0:
2442 self.updatebranchcache()
2442 def runhooks(): 2443 def runhooks():
2443 # forcefully update the on-disk branch cache 2444 # forcefully update the on-disk branch cache
2444 self.ui.debug("updating the branch cache\n") 2445 self.ui.debug("updating the branch cache\n")
2445 self.updatebranchcache()
2446 self.hook("changegroup", node=hex(cl.node(clstart)), 2446 self.hook("changegroup", node=hex(cl.node(clstart)),
2447 source=srctype, url=url) 2447 source=srctype, url=url)
2448 2448
2449 for n in added: 2449 for n in added:
2450 self.hook("incoming", node=hex(n), source=srctype, 2450 self.hook("incoming", node=hex(n), source=srctype,