[PATCH 10 of 13] merge: document return values of manifestmerge() and calculateupdates()

Pulkit Goyal 7895pulkit at gmail.com
Fri Jul 17 08:59:31 UTC 2020


# HG changeset patch
# User Pulkit Goyal <7895pulkit at gmail.com>
# Date 1594721548 -19800
#      Tue Jul 14 15:42:28 2020 +0530
# Node ID 6a87141b0721d719fcc3b8bb94743eda1a120c17
# Parent  15d0b77c5833af7c1b04e29dd4628a66d9518cde
# EXP-Topic mergestate-refactor
merge: document return values of manifestmerge() and calculateupdates()

In future patches, I want to add one more return value which represents
information which needs to stored and used at commit time.

Differential Revision: https://phab.mercurial-scm.org/D8741

diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -558,6 +558,13 @@ def manifestmerge(
     branchmerge and force are as passed in to update
     matcher = matcher to filter file lists
     acceptremote = accept the incoming changes without prompting
+
+    Returns:
+
+    actions: dict of filename as keys and action related info as values
+    diverge: mapping of source name -> list of dest name for divergent renames
+    renamedelete: mapping of source name -> list of destinations for files
+                  deleted on one side and renamed on other.
     """
     if matcher is not None and matcher.always():
         matcher = None
@@ -875,7 +882,17 @@ def calculateupdates(
     matcher=None,
     mergeforce=False,
 ):
-    """Calculate the actions needed to merge mctx into wctx using ancestors"""
+    """
+    Calculate the actions needed to merge mctx into wctx using ancestors
+
+    Uses manifestmerge() to merge manifest and get list of actions required to
+    perform for merging two manifests. If there are multiple ancestors, uses bid
+    merge if enabled.
+
+    Also filters out actions which are unrequired if repository is sparse.
+
+    Returns same 3 element tuple as manifestmerge().
+    """
     # Avoid cycle.
     from . import sparse
 




More information about the Mercurial-devel mailing list