I thought that 1.7.4 was going to be just another incremental update, but small things sometimes add up to form a surprisingly larger whole.
Here are some of the highlights since 1.7.3:
- The structure of the discussion thread send-email creates when sending a re-rolled series (i.e. with In-Reply-To) is finally made much saner. Earlier, everything including the cover letter was made into a direct response to the previous round, but now only the cover letter becomes a direct response, and everything else becomes a response to the cover letter for the current round.
- Bash-completion is usable with Bash-4, which broke completion of --option=with-value of our earlier implementation.
- Tab-width used in whitespace breakage checking can be configured via the attributes mechanism. Earlier, we insisted that a Tab had to be 8 places everywhere.
- The merge machinery can now be told to merge branches ignoring various whitespace changes.
- The fetch command learned to recurse into submodules, reducing the need to use "submodule update". It will be a longer-term trend to roll submodule-awareness into more basic commands, and this is one of the steps in that direction.
- <tree>:<path> notation to name a blob or a subtree can be told to take the current directory relative to the top of the current working tree by prefixing <path> part with "./", e.g. "HEAD:./Makefile" when you are in "drivers/" subdirectory names the blob at "drivers/Makefile" in the current commit.
- Pickaxe search "log -S<string>", which was designed for scripted use, met a more human-friendly cousin "log -G<regexp>". While "-S<string>" is about counting the number of appearance of <string> in the file before and after the change and reporting when they differ, "-G<regexp>" looks at the actual patch text and reports if a line that matches <regexp> appears as either added or deleted, allowing detection of simply moving a matching line in a file, which "-S<string>" was not designed to do.