- The setup code used to die when core.bare and core.worktree are set inconsistently, even for commands that do not need working tree.
- There was a dead code that used to handle git pull --tags and show special-cased error message, which was made irrelevant when the semantics of the option changed back in Git 1.9 days.
- color.diff.plain was a misnomer; give it color.diff.context as a more logical synonym.
- The configuration reader/writer uses mmap(2) interface to access the files; when we find a directory, it barfed with "Out of memory?".
- Recent git prune traverses young unreachable objects to safekeep old objects in the reachability chain from them, which sometimes showed unnecessary error messages that are alarming.
- git rebase -i fired post-rewrite hook when it shouldn't (namely, when it was told to stop sequencing with exec insn).