D7860: graftcopies: remove `skip` and `repo` arguments
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Jan 16 11:32:16 EST 2020
Closed by commit rHG833210fbd900: graftcopies: remove `skip` and `repo` arguments (authored by martinvonz).
This revision was automatically updated to reflect the committed changes.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D7860?vs=19251&id=19371
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D7860/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D7860
AFFECTED FILES
hgext/fix.py
hgext/rebase.py
mercurial/copies.py
mercurial/merge.py
relnotes/next
CHANGE DETAILS
diff --git a/relnotes/next b/relnotes/next
--- a/relnotes/next
+++ b/relnotes/next
@@ -31,4 +31,5 @@
* `copies.duplicatecopies()` was renamed to
`copies.graftcopies()`. Its arguments changed from revision numbers
- to context objects.
+ to context objects. It also lost its `repo` and `skip` arguments
+ (they should no longer be needed).
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -2635,7 +2635,7 @@
repo.setparents(pctx.node(), pother)
repo.dirstate.write(repo.currenttransaction())
# fix up dirstate for copies and renames
- copies.graftcopies(repo, wctx, ctx, base)
+ copies.graftcopies(wctx, ctx, base)
return stats
diff --git a/mercurial/copies.py b/mercurial/copies.py
--- a/mercurial/copies.py
+++ b/mercurial/copies.py
@@ -856,30 +856,11 @@
return False
-def graftcopies(repo, wctx, ctx, base, skip=None):
- """reproduce copies between base and ctx in the wctx
-
- If skip is specified, it's a revision that should be used to
- filter copy records. Any copies that occur between base and
- skip will not be duplicated, even if they appear in the set of
- copies between base and ctx.
- """
- exclude = {}
- ctraceconfig = repo.ui.config(b'experimental', b'copytrace')
- bctrace = stringutil.parsebool(ctraceconfig)
- if skip is not None and (
- ctraceconfig == b'heuristics' or bctrace or bctrace is None
- ):
- # copytrace='off' skips this line, but not the entire function because
- # the line below is O(size of the repo) during a rebase, while the rest
- # of the function is much faster (and is required for carrying copy
- # metadata across the rebase anyway).
- exclude = pathcopies(base, skip)
+def graftcopies(wctx, ctx, base):
+ """reproduce copies between base and ctx in the wctx"""
new_copies = pathcopies(base, ctx)
_filter(wctx.p1(), wctx, new_copies)
for dst, src in pycompat.iteritems(new_copies):
- if dst in exclude:
- continue
wctx[dst].markcopied(src)
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1497,16 +1497,13 @@
labels=[b'dest', b'source'],
wc=wctx,
)
- destctx = repo[dest]
if collapse:
- copies.graftcopies(repo, wctx, ctx, destctx)
+ copies.graftcopies(wctx, ctx, repo[dest])
else:
# If we're not using --collapse, we need to
# duplicate copies between the revision we're
- # rebasing and its first parent, but *not*
- # duplicate any copies that have already been
- # performed in the destination.
- copies.graftcopies(repo, wctx, ctx, ctx.p1(), skip=destctx)
+ # rebasing and its first parent.
+ copies.graftcopies(wctx, ctx, ctx.p1())
return stats
diff --git a/hgext/fix.py b/hgext/fix.py
--- a/hgext/fix.py
+++ b/hgext/fix.py
@@ -734,8 +734,7 @@
extra[b'fix_source'] = ctx.hex()
wctx = context.overlayworkingctx(repo)
- newp1ctx = repo[newp1node]
- wctx.setbase(newp1ctx)
+ wctx.setbase(repo[newp1node])
merge.update(
repo,
ctx.rev(),
@@ -745,7 +744,7 @@
mergeancestor=False,
wc=wctx,
)
- copies.graftcopies(repo, wctx, ctx, ctx.p1(), skip=newp1ctx)
+ copies.graftcopies(wctx, ctx, ctx.p1())
for path in filedata.keys():
fctx = ctx[path]
To: martinvonz, #hg-reviewers, pulkit
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list