hgext3rd/evolve/utility.py
changeset 4636 c0e9a3c01c44
parent 4393 159a4a6ded0b
child 4814 48b30ff742cb
--- 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