# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1498353479 -19800 # Node ID 9c0b293c27854b84234662d36d4472a77c652028 # Parent 914757c702179d948d3026223a9123ac10855ad2 topics: move the logic to change or clear current topic into a new function It adds a new _changecurrenttopic which changes or clears the current topic. diff -r 914757c70217 -r 9c0b293c2785 hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Mon Jun 26 17:20:17 2017 +0200 +++ b/hgext3rd/topic/__init__.py Sun Jun 25 06:47:59 2017 +0530 @@ -288,14 +288,11 @@ raise error.Abort("can't change topic of a public change") _changetopics(ui, repo, rev, topic) if clear: - if repo.vfs.exists('topic'): - repo.vfs.unlink('topic') - return + return _changecurrenttopic(repo, None) + if topic: - with repo.wlock(): - with repo.vfs.open('topic', 'w') as f: - f.write(topic) - return + return _changecurrenttopic(repo, topic) + _listtopics(ui, repo, opts) @command('stack [TOPIC]', [] + commands.formatteropts) @@ -309,6 +306,17 @@ raise error.Abort(_('no active topic to list')) return stack.showstack(ui, repo, topic, opts) +def _changecurrenttopic(repo, newtopic): + """changes the current topic.""" + + if newtopic: + with repo.wlock(): + with repo.vfs.open('topic', 'w') as f: + f.write(newtopic) + else: + if repo.vfs.exists('topic'): + repo.vfs.unlink('topic') + def _changetopics(ui, repo, revset, newtopic): rewrote = 0 needevolve = False