diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -275,13 +275,24 @@ """ cl = repo.changelog parents = cl._uncheckedparentrevs + if repo.filecopiesmode == b'changeset-sidedata': + changelogrevision = cl.changelogrevision - def revinfo(rev): - p1, p2 = parents(rev) - ctx = repo[rev] - p1copies, p2copies = ctx._copies - removed = ctx.filesremoved() - return p1, p2, p1copies, p2copies, removed + def revinfo(rev): + p1, p2 = parents(rev) + c = changelogrevision(rev) + p1copies = c.p1copies + p2copies = c.p2copies + removed = c.filesremoved + return p1, p2, p1copies, p2copies, removed + + else: + def revinfo(rev): + p1, p2 = parents(rev) + ctx = repo[rev] + p1copies, p2copies = ctx._copies + removed = ctx.filesremoved() + return p1, p2, p1copies, p2copies, removed return revinfo