Mercurial > public > mercurial-scm > hg
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, |