From patchwork Fri Dec 27 20:10:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D7732: convert: refactor authormap into separate function for outside use From: phabricator X-Patchwork-Id: 44061 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Fri, 27 Dec 2019 20:10:46 +0000 joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D7732 AFFECTED FILES hgext/convert/convcmd.py CHANGE DETAILS To: joerg.sonnenberger, #hg-reviewers Cc: mercurial-devel diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py --- a/hgext/convert/convcmd.py +++ b/hgext/convert/convcmd.py @@ -55,6 +55,34 @@ orig_encoding = b'ascii' +def readauthormap(ui, authorfile): + authors = {} + + with open(authorfile, b'rb') as afile: + for line in afile: + + line = line.strip() + if not line or line.startswith(b'#'): + continue + + try: + srcauthor, dstauthor = line.split(b'=', 1) + except ValueError: + msg = _(b'ignoring bad line in author map file %s: %s\n') + ui.warn(msg % (authorfile, line.rstrip())) + continue + + srcauthor = srcauthor.strip() + dstauthor = dstauthor.strip() + if authors.get(srcauthor) in (None, dstauthor): + msg = _(b'mapping author %s to %s\n') + ui.debug(msg % (srcauthor, dstauthor)) + authors[srcauthor] = dstauthor + continue + + m = _(b'overriding mapping for author %s, was %s, will be %s\n') + ui.status(m % (srcauthor, authors[srcauthor], dstauthor)) + return authors def recode(s): if isinstance(s, pycompat.unicode): @@ -448,32 +476,7 @@ ofile.close() def readauthormap(self, authorfile): - afile = open(authorfile, b'rb') - for line in afile: - - line = line.strip() - if not line or line.startswith(b'#'): - continue - - try: - srcauthor, dstauthor = line.split(b'=', 1) - except ValueError: - msg = _(b'ignoring bad line in author map file %s: %s\n') - self.ui.warn(msg % (authorfile, line.rstrip())) - continue - - srcauthor = srcauthor.strip() - dstauthor = dstauthor.strip() - if self.authors.get(srcauthor) in (None, dstauthor): - msg = _(b'mapping author %s to %s\n') - self.ui.debug(msg % (srcauthor, dstauthor)) - self.authors[srcauthor] = dstauthor - continue - - m = _(b'overriding mapping for author %s, was %s, will be %s\n') - self.ui.status(m % (srcauthor, self.authors[srcauthor], dstauthor)) - - afile.close() + self.authors = readauthormap(self.ui, authorfile) def cachecommit(self, rev): commit = self.source.getcommit(rev)