Performance and Internal Implementation (please report possible regressions)
+ * Bash completion script (in contrib/) have been cleaned up to make
+ future work on it simpler.
+
* An experimental "version 4" format of the index file has been
introduced to reduce on-disk footprint and I/O overhead.
* More lower-level commands learned to use the streaming API to read
from the object store without keeping everything in core.
+ * The weighting parameters to suggestion command name typo have been
+ tweaked, so that "git tags" will suggest "tag?" and not "stage?".
+
* Because "sh" on the user's PATH may be utterly broken on some
systems, run-command API now uses SHELL_PATH, not /bin/sh, when
spawning an external command (not applicable to Windows port).
releases are contained in this release (see release notes to them for
details).
- * When a submodule repository uses alternate object store mechanism,
- some commands that were started from the superproject did not
- notice it and failed with "No such object" errors. The subcommands
- of "git submodule" command that properly recursed into the
- submodule in a separate process were OK; only the ones that cheated
- and peeked directly into the submodule's repository from the
- primary process were affected.
- (merge 5e73633 hv/submodule-alt-odb later to maint).
-
- * The directory path used in "git diff --no-index", when it recurses
- down, was broken with a recent update after v1.7.10.1 release.
- (merge 176a335 bp/diff-no-index-strbuf-fix later to maint).
-
- * "git status --porcelain" ignored "--branch" option by mistake. The
- output for "git status --branch -z" was also incorrect and did not
- terminate the record for the current branch name with NUL as asked.
- (merge d4a6bf1 jk/maint-status-porcelain-z-b later to maint).
+ * When "git rebase" is fed a bad revision name (either as base, or
+ with the --onto option), it did not correctly give the command line
+ parameter it had trouble with in its error message.
+ (merge 9180fea ef/maint-rebase-error-message later to maint).
+
+ * "git rebase -p" used to pay attention to rebase.autosquash which
+ was wrong. "git rebase -p -i" should, but "git rebase -p" by
+ itself should not.
+ (merge 8a6dae1 vr/rebase-autosquash-does-not-imply-i later to maint).
+
+ * "git submodule init" used to report "registered for path ..."
+ even for submodules that were registered earlier.
+ (cherry-pick c1c259e jl/submodule-report-new-path-once later to maint).
* "git diff --stat" used to fully count a binary file with modified
execution bits whose contents is unmodified, which was not quite