Patchwork D9065: merge: make low-level update() private (API)

login
register
mail settings
Submitter phabricator
Date Sept. 21, 2020, 8:38 p.m.
Message ID <differential-rev-PHID-DREV-5cdj5q7bywdjfsi7j5eb-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/47237/
State Superseded
Headers show

Comments

phabricator - Sept. 21, 2020, 8:38 p.m.
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  We have very few callers left that call the low-level `merge.update()`
  function. I think it's time to make it private. I'll remove the
  remaining callers in coming patches, except for one call from the
  `rebase` module. I hope to eventually fix that too, but it's more
  complex because it requires teaching `merge.graft()` to work with a
  dirty working copy.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D9065

AFFECTED FILES
  hgext/largefiles/overrides.py
  hgext/rebase.py
  hgext/transplant.py
  mercurial/hg.py
  mercurial/merge.py
  relnotes/next

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/relnotes/next b/relnotes/next
--- a/relnotes/next
+++ b/relnotes/next
@@ -20,3 +20,7 @@ 
 
 == Internal API Changes ==
 
+ * `merge.update()` is now private (renamed to `_update()`). Hopefully
+   the higher-level functions available in the same module cover your
+   use cases.
+
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -1771,7 +1771,7 @@ 
 UPDATECHECK_NO_CONFLICT = b'noconflict'
 
 
-def update(
+def _update(
     repo,
     node,
     branchmerge,
@@ -2122,7 +2122,7 @@ 
     force = whether the merge was run with 'merge --force' (deprecated)
     """
 
-    return update(
+    return _update(
         ctx.repo(),
         ctx.rev(),
         labels=labels,
@@ -2139,7 +2139,7 @@ 
     This involves updating to the commit and discarding any changes in the
     working copy.
     """
-    return update(ctx.repo(), ctx.rev(), branchmerge=False, force=True, wc=wc)
+    return _update(ctx.repo(), ctx.rev(), branchmerge=False, force=True, wc=wc)
 
 
 def revert_to(ctx, matcher=None, wc=None):
@@ -2149,7 +2149,7 @@ 
     be the same as in the given commit.
     """
 
-    return update(
+    return _update(
         ctx.repo(),
         ctx.rev(),
         branchmerge=False,
@@ -2200,7 +2200,7 @@ 
         or pctx.rev() == base.rev()
     )
 
-    stats = update(
+    stats = _update(
         repo,
         ctx.node(),
         True,
@@ -2243,7 +2243,7 @@ 
                 b"must specify parent of merge commit to back out"
             )
         parent = ctx.p1()
-    return update(
+    return _update(
         ctx.repo(),
         parent,
         branchmerge=True,
diff --git a/mercurial/hg.py b/mercurial/hg.py
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -1049,7 +1049,7 @@ 
     When overwrite is set, changes are clobbered, merged else
 
     returns stats (see pydoc mercurial.merge.applyupdates)"""
-    return mergemod.update(
+    return mergemod._update(
         repo,
         node,
         branchmerge=False,
diff --git a/hgext/transplant.py b/hgext/transplant.py
--- a/hgext/transplant.py
+++ b/hgext/transplant.py
@@ -198,7 +198,7 @@ 
                     if pulls:
                         if source != repo:
                             exchange.pull(repo, source.peer(), heads=pulls)
-                        merge.update(
+                        merge._update(
                             repo, pulls[-1], branchmerge=False, force=False
                         )
                         p1 = repo.dirstate.p1()
@@ -275,7 +275,7 @@ 
             tr.close()
             if pulls:
                 exchange.pull(repo, source.peer(), heads=pulls)
-                merge.update(repo, pulls[-1], branchmerge=False, force=False)
+                merge._update(repo, pulls[-1], branchmerge=False, force=False)
         finally:
             self.saveseries(revmap, merges)
             self.transplants.write()
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1497,7 +1497,7 @@ 
 
     # See explanation in merge.graft()
     mergeancestor = repo.changelog.isancestor(p1ctx.node(), ctx.node())
-    stats = mergemod.update(
+    stats = mergemod._update(
         repo,
         rev,
         branchmerge=True,
diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
--- a/hgext/largefiles/overrides.py
+++ b/hgext/largefiles/overrides.py
@@ -1699,7 +1699,7 @@ 
     return err
 
 
-@eh.wrapfunction(merge, b'update')
+@eh.wrapfunction(merge, b'_update')
 def mergeupdate(orig, repo, node, branchmerge, force, *args, **kwargs):
     matcher = kwargs.get('matcher', None)
     # note if this is a partial update