The actual release announcement can be read here.
That diff highlighting is a welcome feature. Particularly for lines that only have whitespace changes, but even a line that’s a bit long but has a change somewhere in it.
I’m looking forward to the diff.compactionHeuristic “whitespace is a break” feature. My current project has an issue because we are using large doxygen comment blocks that are quite repetitive, so when you add a new function with doxygen comment git can get confused “was it 3 + new function + 7 lines of doxygen comments? or 10 new lines of doxygen comments + new function?”.
The end-user facing commands like “git diff” and “git log”
now enable the rename detection by default.
An interesting problem here is that rename tracking applies to individual files, but not directories.
Of course, git doesn’t track directories explicitly, so this is not entirely unexpected.
I have a use case that doesn’t seem to have a good answer in git (if anyone knows a solution, please tell me!):
linux.git commit e705c12146aa9c69ca498d4ebb83ba7138f9b41f moved the directory
‘drivers/net/wireless/iwlwifi’ to ‘drivers/net/wireless/intel/iwlwifi’ (i.e. ‘iwlwifi’ moved to ‘intel/iwlwifi’).
While working on the iwm(4) driver for OpenBSD, I often had to read iwlwifi git history a long way into the past and look at old commits. This driver changes rapidly and iwm(4) code is not regularly tracking it. And the Intel guys often delete old code in newer revisions, code which OpenBSD still uses, so reading git history is absolutely necessary to make some sense of it all.
When they moved the directory and I pulled that commit, I could no longer read the history of the entire driver with one ‘git log -p .’ command in the iwlwifi directory. I now had to select a file first (out of 126 files) to trace back beyond the commit which had moved the directory. Else, the log always stopped at this commit. Of course, I often didn’t know which file I should be looking at in the first place.
I ended up checking out an older version of the linux tree to run ‘git log’ in. There might be some magic incantation to make ‘git log’ search the prior directory location even from a current checkout, but I couldn’t find it.