* The "fmt-merge-msg" command learns to list the primary contributors
involved in the side topic you are merging.
- * The cases "git push" fails due to non-ff can be broken into three
- categories; each case is given a separate advise message.
-
* "git rebase" learned to optionally keep commits that do not
introduce any change in the original history.
* "git archive" learned to produce its output without reading the
blob object it writes out in memory in its entirety.
+ * "git index-pack" that runs when fetching or pushing objects to
+ complete the packfile on the receiving end learned to use multiple
+ threads to do its job when available.
+
* The code to compute hash values for lines used by the internal diff
engine was optimized on little-endian machines, using the same
trick the kernel folks came up with.
* "git apply" had some memory leaks plugged.
- * "git repack" used to write out unreachable objects as loose objects
- when repacking, even if such loose objects will immediately pruned
- due to its age.
-
* Setting up a revision traversal with many starting points was
inefficient as these were placed in a date-order priority queue
one-by-one. Now they are collected in the queue unordered first,
and sorted immediately before getting used.
- * "git rev-parse --show-prefix" used to emit nothing when run at the
- top-level of the working tree, but now it gives a blank line.
-
- * Minor memory leak during unpack_trees (hence "merge" and "checkout"
- to check out another branch) has been plugged.
-
* More lower-level commands learned to use the streaming API to read
from the object store without keeping everything in core.
releases are contained in this release (see release notes to them for
details).
- * When checking out another commit from an already detached state, we
- used to report all commits that are not reachable from any of the
- refs as lossage, but some of them might be reachable from the new
- HEAD, and there is no need to warn about them.
- (merge 5d88639 js/checkout-detach-count later to maint).
+ * 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).
- * Some time ago, "git clone" lost the progress output for its
- "checkout" phase; when run without any "--quiet" option, it should
- give progress to the lengthy operation.
- (merge 8f63da1 ef/maint-clone-progress-fix 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
* "git diff --stat" used to fully count a binary file with modified
execution bits whose contents is unmodified, which was not quite
right.
-
- * "log -z --pretty=tformat:..." did not terminate each record with
- NUL. The fix is not entirely correct when the output also asks for
- --patch and/or --stat, though.
- (merge fafd382 jk/maint-tformat-with-z later to maint).