subrepo: adapt to git's recent renames-by-default stable
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 24 Mar 2016 09:38:11 -0700
branchstable
changeset 28618 7dab4caf11bc
parent 28518 aa440c3d7c5d
child 28624 345f4fa4cc89
child 28632 a2c2dd399f3b
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).
mercurial/subrepo.py
--- a/mercurial/subrepo.py	Sun Mar 13 02:29:11 2016 +0100
+++ b/mercurial/subrepo.py	Thu Mar 24 09:38:11 2016 -0700
@@ -1810,9 +1810,9 @@
         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 @@
     @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: