[PATCH V2] mergestate: add `allextras()` to get all extras

2020-10-14 Thread Pulkit Goyal
# HG changeset patch
# User Pulkit Goyal <7895pul...@gmail.com>
# Date 1602313984 -19800
#  Sat Oct 10 12:43:04 2020 +0530
# Node ID 4884022d4ad9b918f863946f6557fac47c664af7
# Parent  04de8a1ec08f380fda794dda3b3f2ed1ccfd442b
# EXP-Topic merge-newnode-final
mergestate: add `allextras()` to get all extras

`extras()` can only be used for getting extra for a file. However at
couple of places in code, we wanted to iterate over all the extras stored with
the mergestate and they were accessing the private `_stateextras`.

We add a new function for this.

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

diff --git a/mercurial/commit.py b/mercurial/commit.py
--- a/mercurial/commit.py
+++ b/mercurial/commit.py
@@ -155,7 +155,7 @@ def _get_salvaged(repo, ms, ctx):
 copy_sd = repo.filecopiesmode == b'changeset-sidedata'
 if copy_sd and len(ctx.parents()) > 1:
 if ms.active():
-for fname in sorted(ms._stateextras.keys()):
+for fname in sorted(ms.allextras().keys()):
 might_removed = 
ms.extras(fname).get(b'merge-removal-candidate')
 if might_removed == b'yes':
 if fname in ctx:
diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py
--- a/mercurial/debugcommands.py
+++ b/mercurial/debugcommands.py
@@ -2107,7 +2107,7 @@ def debugmergestate(ui, repo, *args, **o
 fm_files.end()
 
 fm_extras = fm.nested(b'extras')
-for f, d in sorted(pycompat.iteritems(ms._stateextras)):
+for f, d in sorted(pycompat.iteritems(ms.allextras())):
 if f in ms:
 # If file is in mergestate, we have already processed it's extras
 continue
diff --git a/mercurial/mergestate.py b/mercurial/mergestate.py
--- a/mercurial/mergestate.py
+++ b/mercurial/mergestate.py
@@ -305,7 +305,12 @@ class _mergestate_base(object):
 ):
 yield f
 
+def allextras(self):
+""" return all extras information stored with the mergestate """
+return self._stateextras
+
 def extras(self, filename):
+""" return extras stored with the mergestate for the given filename """
 return self._stateextras[filename]
 
 def _resolve(self, preresolve, dfile, wctx):
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


Re: [PATCH V2] mergestate: add `allextras()` to get all extras

2020-10-14 Thread Yuya Nishihara
On Wed, 14 Oct 2020 13:47:17 +0530, Pulkit Goyal wrote:
> # HG changeset patch
> # User Pulkit Goyal <7895pul...@gmail.com>
> # Date 1602313984 -19800
> #  Sat Oct 10 12:43:04 2020 +0530
> # Node ID 4884022d4ad9b918f863946f6557fac47c664af7
> # Parent  04de8a1ec08f380fda794dda3b3f2ed1ccfd442b
> # EXP-Topic merge-newnode-final
> mergestate: add `allextras()` to get all extras

Queued, thanks.
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel