* The use of 'good/bad' in "git bisect" made it confusing to use when
hunting for a state change that is not a regression (e.g. bugfix).
The command learned 'old/new' and then allows the end user to
- say e.g. "bisect start --term-old=fast --term=new=slow" to find a
+ say e.g. "bisect start --term-old=fast --term-new=slow" to find a
performance regression.
* "git interpret-trailers" can now run outside of a Git repository.
* Teach "git p4" to send large blobs outside the repository by
talking to Git LFS.
+ * Prepare for Git on-disk repository representation to undergo
+ backward incompatible changes by introducing a new repository
+ format version "1", with an extension mechanism.
+ (merge 067fbd4 jk/repository-extension later to maint).
+
+ * "git worktree" learned a "list" subcommand.
+
Performance, Internal Implementation, Development Support etc.
* Some features from "git tag -l" and "git branch -l" have been made
available to "git for-each-ref" so that eventually the unified
- implementation can be shared across all three.
+ implementation can be shared across all three. The version merged
+ to the 'master' branch earlier had a performance regression in "tag
+ --contains", which has since been corrected.
* Because "test_when_finished" in our test framework queues the
clean-up tasks to be done in a shell variable, it should not be
ref-filter API that is shared with "git tag" and "git
for-each-ref".
+ * The test for various line-ending conversions has been enhanced.
+
+ * A few test scripts around "git p4" have been improved for
+ portability.
+
+ * Many allocations that is manually counted (correctly) that are
+ followed by strcpy/sprintf have been replaced with a less error
+ prone constructs such as xstrfmt.
+
+ * The internal stripspace() function has been moved to where it
+ logically belongs to, i.e. strbuf API, and the command line parser
+ of "git stripspace" has been updated to use the parse_options API.
+ (merge bed4452 tk/stripspace later to maint).
+
+ * "git am" used to spawn "git mailinfo" via run_command() API once
+ per each patch, but learned to make a direct call to mailinfo()
+ instead.
+
+ * The implementation of "git mailinfo" was refactored so that a
+ mailinfo() function can be directly called from inside a process.
+
Also contains various documentation updates and code clean-ups.
work trees created via "git worktree add".
(merge 11f9dd7 mk/submodule-gitdir-path later to maint).
- * Code clean-up and minor fixes.
+ * "git gc" is safe to run anytime only because it has the built-in
+ grace period to protect young objects. In order to run with no
+ grace period, the user must make sure that the repository is
+ quiescent.
+ (merge fae1a90 jc/doc-gc-prune-now later to maint).
+
+ * A recent "filter-branch --msg-filter" broke skipping of the commit
+ object header, which is fixed.
+ (merge a5a4b3f jk/filter-branch-use-of-sed-on-incomplete-line later to maint).
+
+ * The normalize_ceiling_entry() function does not muck with the end
+ of the path it accepts, and the real world callers do rely on that,
+ but a test insisted that the function drops a trailing slash.
+ (merge b2a7123 rd/test-path-utils later to maint).
+
+ * A test for interaction between untracked cache and sparse checkout
+ added in Git 2.5 days were flaky.
+ (merge 9b680fb dt/t7063-fix-flaky-test later to maint).
+
+ * A couple of commands still showed "[options]" in their usage string
+ to note where options should come on their command line, but we
+ spell that "[<options>]" in most places these days.
+ (merge d96a031 rt/placeholder-in-usage later to maint).
+
+ * The synopsis text and the usage string of subcommands that read
+ list of things from the standard input are often shown as if they
+ only take input from a file on a filesystem, which was misleading.
+ (merge 33e8fc8 jc/usage-stdin later to maint).
+
+ * "git am -3" had a small regression where it is aborted in its error
+ handling codepath when underlying merge-recursive failed in certain
+ ways, as it assumed that the internal call to merge-recursive will
+ never die, which is not the case (yet).
+ (merge c63d4b2 jc/am-3-fallback-regression-fix later to maint).
+
+ * The linkage order of libraries was wrong in places around libcurl.
+ (merge 7e91e8d rp/link-curl-before-ssl later to maint).
+
+ * The name-hash subsystem that is used to cope with case insensitive
+ filesystems keeps track of directories and their on-filesystem
+ cases for all the paths in the index by holding a pointer to a
+ randomly chosen cache entry that is inside the directory (for its
+ ce->ce_name component). This pointer was not updated even when the
+ cache entry was removed from the index, leading to use after free.
+ This was fixed by recording the path for each directory instead of
+ borrowing cache entries and restructuring the API somewhat.
+ (merge 41284eb dt/name-hash-dir-entry-fix later to maint).
+
+ * Code clean-up, minor fixes etc.
(merge 15ed07d jc/rerere later to maint).
- (merge b744767 pt/pull-builtin later to maint).
+ (merge e7a7401 pt/pull-builtin later to maint).
(merge 29bc480 nd/ls-remote-does-not-have-u-option later to maint).
(merge be510e0 jk/asciidoctor-section-heading-markup-fix later to maint).
(merge 83e6bda tk/typofix-connect-unknown-proto-error later to maint).
(merge a43eb67 tk/doc-interpret-trailers-grammo later to maint).
(merge ba128e2 es/worktree-add-cleanup later to maint).
(merge 44cd91e cc/quote-comments later to maint).
+ (merge 147875f sb/submodule-config-parse later to maint).
+ (merge ae9f274 es/worktree-add later to maint).
+ (merge 3b19dba jc/em-dash-in-doc later to maint).
+ (merge f3f38c7 jc/everyday-markup later to maint).
+ (merge 77d5f71 xf/user-manual-markup later to maint).