diff -r ea9ae2d2095a -r c0e9a3c01c44 hgext3rd/evolve/utility.py --- a/hgext3rd/evolve/utility.py Sun May 05 18:24:50 2019 +0530 +++ b/hgext3rd/evolve/utility.py Sun May 05 18:24:59 2019 +0530 @@ -187,3 +187,26 @@ return None return revs[intidx - 1] + +def mergeusers(ui, base, divergent, other): + """ merges the users from two divergent changesets using three-way merge + and return the user that will be used as the author of resolved cset""" + baseuser = base.user() + divuser = divergent.user() + othuser = other.user() + + if divuser == othuser: + return divuser + else: + if baseuser == divuser: + return othuser + elif baseuser == othuser: + return divuser + else: + # all three are different, lets concatenate the two authors + # XXX: should we let the user know about concatenation of authors + # by printing some message (or maybe in verbose mode) + users = set(divuser.split(', ')) + users.update(othuser.split(', ')) + user = ', '.join(sorted(users)) + return user