On Wed, Oct 31, 2018 at 12:27 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > james harvey <jamespharvey20@xxxxxxxxx> writes: > > > If you use both "--word-diff" and "--color-moved", regardless of the > > order of arguments, "--word-diff" takes precedence and "--color-moved" > > isn't allowed to do anything. > > > > I think "--color-moved" should have precedence over "--word-diff". I > > cannot think of a scenario where a user would supply both options, and > > actually want "--word-diff" to take precedence. > > I am not sure if I follow. If these two cannot work well together, > then we should just reject the request as asking for incompatible > combination of options while we are parsing the command line > arguments, rather than arguing which one should trump the other > one---that would simply lead to "in my opinion, word-diff is more > important" vs "in mine, color-moved is more important", no? I should have been more clear in my original message. I don't mean that if "--color-moved" is given, that the argument "--word-diff" should be completely ignored as if it weren't given as an option. I'm not too concerned about my reduced test case scenario. I'm concerned about a larger diff, where there's some areas that got moved, some lines that got deleted, some added, and some lines with just a word or two changed. In those larger scenarios, WITHOUT using BOTH "--color-moved" and "--word-diff", and INSTEAD just using "git diff --color-moved", a typical full line(s) diff occurs for changed areas that weren't moved, as if it were given as a hidden/default option. It's analyzing each differing area to see if it's going to show each of those differing areas as a move or a full line(s) diff. Here, "--color-moved" takes precedence (in the way I'm trying to use the word) over the typical full line(s) diff. I could be wrong, but I don't see why "--color-moved" can't operate the same way, with "--word-diff" taking the place of the typical full line(s) diff. So, if it would be technically accurate to show something that was moved using either method, that it would show moved areas as a move rather than as word-diffs. This would leave areas not moved to be word-diffed. I think these options can co-exist. I could be wrong, but I'm betting the code for "--color-moved" was only written with the typical full line(s) diff in mind, and wasn't written with "--word-diff" in mind.