Mercurial > hg
changeset 44092:833210fbd900
graftcopies: remove `skip` and `repo` arguments
The `skip` argument was added in 2ba6c9b4e0eb (rebase: fix bug that
caused transitive copy records to disappear (issue4192), 2014-06-07)
in order to fix https://bz.mercurial-scm.org/show_bug.cgi?id=4192. I
ran tests at that commit without the `skiprev` argument and the only
difference I noticed was that `test-rebase-collapse.t` failed
differently, in the call that is now on line 501. Without the
`skiprev` argument, that call would end up creating another commit
because it tried to record an invalid copy. With the previous patch in
this series, such invalid copies are no longer recorded, so it seems
we don't need the `skip` argument anymore.
I also removed the `repo` argument since that also becomes unused with
the removal of the `skip` argument.
Differential Revision: https://phab.mercurial-scm.org/D7860
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 27 Dec 2019 13:47:59 -0800 |
parents | 3df0bd706c40 |
children | 06e7e7652ac0 |
files | hgext/fix.py hgext/rebase.py mercurial/copies.py mercurial/merge.py relnotes/next |
diffstat | 5 files changed, 10 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/fix.py Fri Dec 27 15:14:19 2019 -0800 +++ b/hgext/fix.py Fri Dec 27 13:47:59 2019 -0800 @@ -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]
--- a/hgext/rebase.py Fri Dec 27 15:14:19 2019 -0800 +++ b/hgext/rebase.py Fri Dec 27 13:47:59 2019 -0800 @@ -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
--- a/mercurial/copies.py Fri Dec 27 15:14:19 2019 -0800 +++ b/mercurial/copies.py Fri Dec 27 13:47:59 2019 -0800 @@ -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)
--- a/mercurial/merge.py Fri Dec 27 15:14:19 2019 -0800 +++ b/mercurial/merge.py Fri Dec 27 13:47:59 2019 -0800 @@ -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
--- a/relnotes/next Fri Dec 27 15:14:19 2019 -0800 +++ b/relnotes/next Fri Dec 27 13:47:59 2019 -0800 @@ -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).