diff -r 4414d500604f -r 2d79a354d843 mercurial/bookmarks.py --- a/mercurial/bookmarks.py Wed Nov 18 01:36:58 2015 -0800 +++ b/mercurial/bookmarks.py Tue Nov 17 12:49:57 2015 -0800 @@ -249,7 +249,14 @@ update = True if update: - marks.write() + lock = tr = None + try: + lock = repo.lock() + tr = repo.transaction('bookmark') + marks.recordchange(tr) + tr.close() + finally: + lockmod.release(tr, lock) return update def listbookmarks(repo):