Mercurial > evolve
diff hgext3rd/topic/__init__.py @ 2662:9c0b293c2785
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.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Sun, 25 Jun 2017 06:47:59 +0530 |
parents | 58719183d383 |
children | ed6fb5f20b24 |
line wrap: on
line diff
--- 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