diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -35,6 +35,7 @@ from . import ( mdiff, pathutil, scmutil, + similar, util, ) stringio = util.stringio @@ -2521,6 +2522,9 @@ def trydiff(repo, revs, ctx1, ctx2, modi header.append('old mode %s' % mode1) header.append('new mode %s' % mode2) if copyop is not None: + if opts.showsimilarity: + sim = similar.score(ctx1[path1], ctx2[path2]) * 100 + header.append('similarity index %d%%' % sim) header.append('%s from %s' % (copyop, path1)) header.append('%s to %s' % (copyop, path2)) elif revs and not repo.ui.quiet: diff --git a/tests/test-diff-unified.t b/tests/test-diff-unified.t --- a/tests/test-diff-unified.t +++ b/tests/test-diff-unified.t @@ -229,6 +229,20 @@ Git diff, adding space -a +b +Git diff, adding extended headers + + $ hg diff --git --config experimental.extendedheader.index=7 --config experimental.extendedheader.similarity=True + diff --git a/f1 b/f 1 + similarity index 0% + rename from f1 + rename to f 1 + index 7898192..6178079 100644 + --- a/f1 + +++ b/f 1 + @@ -1,1 +1,1 @@ + -a + +b + Git diff with noprefix $ hg --config diff.noprefix=True diff --git --nodates