# HG changeset patch # User Pierre-Yves David # Date 1498044068 -7200 # Node ID b9cfb8bd0965b000ee903c671d52e0f7cae5127c # Parent b5723184fc62d4605a591af88f49f92e8229d5f9 topic-change: cleanup the locking and transaction mechanism The previous code did not garanted we would release all lock (and was a bit more complicated than needed. diff -r b5723184fc62 -r b9cfb8bd0965 hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Wed Jun 21 07:21:50 2017 +0530 +++ b/hgext3rd/topic/__init__.py Wed Jun 21 13:21:08 2017 +0200 @@ -306,9 +306,10 @@ def _changetopics(ui, repo, revset, newtopic): rewrote = 0 needevolve = False - l = repo.lock() - txn = repo.transaction('rewrite-topics') + l = txn = None try: + l = repo.lock() + txn = repo.transaction('rewrite-topics') p1 = None p2 = None successors = {} @@ -358,14 +359,9 @@ obsolete.createmarkers(repo, [(c, (repo[newnode],))]) rewrote += 1 txn.close() - except: - try: - txn.abort() - finally: - repo.invalidate() - raise finally: lock.release(txn, l) + repo.invalidate() ui.status('changed topic on %d changes\n' % rewrote) if needevolve: evolvetarget = 'topic(%s)' % newtopic if newtopic else 'not topic()'