# HG changeset patch # User Mads Kiilerich # Date 1367097592 -7200 # Node ID 278bd08a2902440e71b81464aec0a370c4f58ed9 # Parent e095626e8676580b705161dc2c5394b867f3add7 largefiles: use more reasonable locking for update diff -r e095626e8676 -r 278bd08a2902 hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py Sat Apr 27 23:19:52 2013 +0200 +++ b/hgext/largefiles/overrides.py Sat Apr 27 23:19:52 2013 +0200 @@ -297,15 +297,15 @@ # will get the new files. Filemerge is also overridden so that the merge # will merge standins correctly. def overrideupdate(orig, ui, repo, *pats, **opts): - lfdirstate = lfutil.openlfdirstate(ui, repo) - s = lfdirstate.status(match_.always(repo.root, repo.getcwd()), [], False, - False, False) - (unsure, modified, added, removed, missing, unknown, ignored, clean) = s - # Need to lock between the standins getting updated and their # largefiles getting updated wlock = repo.wlock() try: + lfdirstate = lfutil.openlfdirstate(ui, repo) + s = lfdirstate.status(match_.always(repo.root, repo.getcwd()), + [], False, False, False) + (unsure, modified, added, removed, missing, unknown, ignored, clean) = s + if opts['check']: mod = len(modified) > 0 for lfile in unsure: @@ -322,9 +322,9 @@ if not opts['clean']: for lfile in unsure + modified + added: lfutil.updatestandin(repo, lfutil.standin(lfile)) + return orig(ui, repo, *pats, **opts) finally: wlock.release() - return orig(ui, repo, *pats, **opts) # Before starting the manifest merge, merge.updates will call # _checkunknown to check if there are any files in the merged-in