# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1514398878 -19800 # Node ID 753e5ebabe7d004ba15b9b4106eb6dd13d59a7a3 # Parent 1face8964965a9f7a8bbbe3eea5757994415c0b5 topics: take logic to parse username to a separate function In next patch we will be adding support to `hg stack` to show users, and this logic will be required there too. So let's take it out in a separate function. diff -r 1face8964965 -r 753e5ebabe7d hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Fri Jan 05 22:50:21 2018 +0100 +++ b/hgext3rd/topic/__init__.py Wed Dec 27 23:51:18 2017 +0530 @@ -1009,16 +1009,7 @@ user = marker.metadata().get('user', user) maxtime = rt - # Making the username more better - username = None - if user: - # user is of form "abc " - username = user.split('<')[0] - if not username: - # user is of form "" - username = user[1:-1] - username = username.strip() - + username = stack.parseusername(user) topicuser = (t, username) if trevs: diff -r 1face8964965 -r 753e5ebabe7d hgext3rd/topic/stack.py --- a/hgext3rd/topic/stack.py Fri Jan 05 22:50:21 2018 +0100 +++ b/hgext3rd/topic/stack.py Wed Dec 27 23:51:18 2017 +0530 @@ -28,6 +28,23 @@ if not util.safehasattr(context.basectx, 'isunstable'): context.basectx.isunstable = context.basectx.troubled +def parseusername(user): + """parses the ctx user and returns the username without email ID if + possible, otherwise returns the mail address from that""" + username = None + if user: + # user is of form "abc " + username = user.split('<')[0] + if not username: + # assuming user is of form "" + if len(user) > 1: + username = user[1:-1] + else: + username = user + username = username.strip() + + return username + def _stackcandidates(repo): """build the smaller set of revs that might be part of a stack.