diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -857,7 +857,14 @@ def graftcopies(wctx, ctx, base): - """reproduce copies between base and ctx in the wctx""" + """reproduce copies between base and ctx in the wctx + + merge.update() will have already marked most copies, but it will only + mark copies if it thinks the source files are related (see + merge._related()). It will also not mark copies if the file wasn't modified + on the local side. This function adds the copies that were "missed" + by merge.update(). + """ new_copies = pathcopies(base, ctx) _filter(wctx.p1(), wctx, new_copies) for dst, src in pycompat.iteritems(new_copies):