largefiles: put whole "hgmerge" process into the same "wlock" scope

Before this patch, there are two distinct "wlock" scopes below in
"hgmerge":

  1. "merge.update" via original "hg.merge" function
  2. "updatelfiles" specific "wlock" scope (to synchronize largefile
     dirstate)

But these should be executed in the same "wlock" scope for
consistency, because users of "hg.merge" don't get "wlock" explicitly
before invocation of it.

  - merge in commands

This patch puts almost all of the original "hgmerge" implementation into
"_hgmerge" to reduce changes.
This commit is contained in:
FUJIWARA Katsunori 2014-08-15 20:28:51 +09:00
parent 79d6e6e6cb
commit a3e5d804ef

View File

@ -717,6 +717,13 @@ def _hgupdaterepo(orig, repo, node, overwrite):
return result
def hgmerge(orig, repo, node, force=None, remind=True):
wlock = repo.wlock()
try:
return _hgmerge(orig, repo, node, force, remind)
finally:
wlock.release()
def _hgmerge(orig, repo, node, force, remind):
result = orig(repo, node, force, remind)
lfcommands.updatelfiles(repo.ui, repo)
return result