# HG changeset patch # User Martin von Zweigbergk # Date 2016-03-24 16:38:11 # Node ID 7dab4caf11bc717b1319ff10475b078e53f4df6c # Parent aa440c3d7c5d2baafeb632ee35db4d917ed9cf83 subrepo: adapt to git's recent renames-by-default Git turned on renames by default in commit 5404c11 (diff: activate diff.renames by default, 2016-02-25). The change is destined for release in git 2.8.0. The change breaks test-subrepo-git, which test specifically that a moved file is reported as a removal and an addition. Fix by passing --no-renames (available in git since mid 2006) to the diff commands that don't use --quiet (should make no difference for those). diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -1810,9 +1810,9 @@ class gitsubrepo(abstractsubrepo): modified, added, removed = [], [], [] self._gitupdatestat() if rev2: - command = ['diff-tree', '-r', rev1, rev2] + command = ['diff-tree', '--no-renames', '-r', rev1, rev2] else: - command = ['diff-index', rev1] + command = ['diff-index', '--no-renames', rev1] out = self._gitcommand(command) for line in out.split('\n'): tab = line.find('\t') @@ -1871,7 +1871,7 @@ class gitsubrepo(abstractsubrepo): @annotatesubrepoerror def diff(self, ui, diffopts, node2, match, prefix, **opts): node1 = self._state[1] - cmd = ['diff'] + cmd = ['diff', '--no-renames'] if opts['stat']: cmd.append('--stat') else: