[PATCH 07 of 15] commitctx: directly pass a ChangingFiles object to changelog.add
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Wed Jul 29 16:57:37 UTC 2020
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at octobus.net>
# Date 1595685309 -7200
# Sat Jul 25 15:55:09 2020 +0200
# Node ID a728c320f0d7c71c733524969e728e533e2d34d6
# Parent 88cc2b7a810243e8c101933fd99778ce772ac316
# EXP-Topic files-change
# Available At https://foss.heptapod.net/octobus/mercurial-devel/
# hg pull https://foss.heptapod.net/octobus/mercurial-devel/ -r a728c320f0d7
commitctx: directly pass a ChangingFiles object to changelog.add
We pass the rich object to the changelog and it read the field it needs.
diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -524,10 +524,6 @@ class changelog(revlog.revlog):
user,
date=None,
extra=None,
- p1copies=None,
- p2copies=None,
- filesadded=None,
- filesremoved=None,
):
# Convert to UTF-8 encoded bytestrings as the very first
# thing: calling any method on a localstr object will turn it
@@ -559,19 +555,23 @@ class changelog(revlog.revlog):
raise error.StorageError(
_(b'the name \'%s\' is reserved') % branch
)
- sortedfiles = sorted(files)
+ sortedfiles = sorted(files.touched)
sidedata = None
if self._copiesstorage == b'changeset-sidedata':
sidedata = {}
+ p1copies = files.copied_from_p1
if p1copies:
p1copies = metadata.encodecopies(sortedfiles, p1copies)
sidedata[sidedatamod.SD_P1COPIES] = p1copies
+ p2copies = files.copied_from_p2
if p2copies:
p2copies = metadata.encodecopies(sortedfiles, p2copies)
sidedata[sidedatamod.SD_P2COPIES] = p2copies
+ filesadded = files.added
if filesadded:
filesadded = metadata.encodefileindices(sortedfiles, filesadded)
sidedata[sidedatamod.SD_FILESADDED] = filesadded
+ filesremoved = files.removed
if filesremoved:
filesremoved = metadata.encodefileindices(
sortedfiles, filesremoved
diff --git a/mercurial/commit.py b/mercurial/commit.py
--- a/mercurial/commit.py
+++ b/mercurial/commit.py
@@ -84,7 +84,7 @@ def commitctx(repo, ctx, error=False, or
repo.changelog.delayupdate(tr)
n = repo.changelog.add(
mn,
- files.touched,
+ files,
ctx.description(),
tr,
p1.node(),
@@ -92,10 +92,6 @@ def commitctx(repo, ctx, error=False, or
user,
ctx.date(),
extra,
- files.copied_from_p1,
- files.copied_from_p2,
- files.added,
- files.removed,
)
xp1, xp2 = p1.hex(), p2 and p2.hex() or b''
repo.hook(
diff --git a/tests/test-convert-identity.t b/tests/test-convert-identity.t
--- a/tests/test-convert-identity.t
+++ b/tests/test-convert-identity.t
@@ -8,9 +8,10 @@ versions.
> convert =
> EOF
$ cat <<'EOF' > changefileslist.py
- > from mercurial import (changelog, extensions)
+ > from mercurial import (changelog, extensions, metadata)
> def wrap(orig, clog, manifest, files, *args, **kwargs):
- > return orig(clog, manifest, [b"a"], *args, **kwargs)
+ > files = metadata.ChangingFiles(touched=[b"a"])
+ > return orig(clog, manifest, files, *args, **kwargs)
> def extsetup(ui):
> extensions.wrapfunction(changelog.changelog, 'add', wrap)
> EOF
More information about the Mercurial-devel
mailing list