diff -r 9021a94a7dbf -r 96d561c90ad0 mercurial/subrepo.py --- a/mercurial/subrepo.py Thu Dec 22 14:30:46 2016 +0100 +++ b/mercurial/subrepo.py Tue Feb 21 17:50:04 2017 +0100 @@ -1414,6 +1414,10 @@ errpipe = None if self.ui.quiet: errpipe = open(os.devnull, 'w') + if self.ui._colormode and len(commands) and commands[0] == "diff": + # insert the argument in the front, + # the end of git diff arguments is used for paths + commands.insert(1, '--color') p = subprocess.Popen([self._gitexecutable] + commands, bufsize=-1, cwd=cwd, env=env, close_fds=util.closefds, stdout=subprocess.PIPE, stderr=errpipe)