diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -220,7 +220,14 @@ def dorecord(ui, repo, commitfunc, cmdsu except OSError: pass - return commit(ui, repo, recordfunc, pats, opts) + def recordinwlock(ui, repo, message, match, opts): + wlock = repo.wlock() + try: + return recordfunc(ui, repo, message, match, opts) + finally: + wlock.release() + + return commit(ui, repo, recordinwlock, pats, opts) def findpossible(cmd, table, strict=False): """