diff -r 75d4e60c7c81 -r 5fa083a5ff04 mercurial/copies.py --- a/mercurial/copies.py Tue Jun 22 13:18:29 2021 -0400 +++ b/mercurial/copies.py Thu Jun 17 19:48:25 2021 +0200 @@ -318,15 +318,16 @@ if p in children_count: children_count[p] += 1 revinfo = _revinfo_getter(repo, match) - return _combine_changeset_copies( - revs, - children_count, - b.rev(), - revinfo, - match, - isancestor, - multi_thread, - ) + with repo.changelog.reading(): + return _combine_changeset_copies( + revs, + children_count, + b.rev(), + revinfo, + match, + isancestor, + multi_thread, + ) else: # When not using side-data, we will process the edges "from" the parent. # so we need a full mapping of the parent -> children relation.