--- /dev/null
- (merge b201316835 jk/osxkeychain-username-is-nul-terminated later to maint).
+Git v2.47 Release Notes
+=======================
+
+UI, Workflows & Features
+------------------------
+
+ * Many Porcelain commands that internally use the merge machinery
+ were taught to consistently honor the diff.algorithm configuration.
+
+ * A few descriptions in "git show-ref -h" have been clarified.
+
+ * A 'P' command to "git add -p" that passes the patch hunk to the
+ pager has been added.
+
+ * "git grep -W" omits blank lines that follow the found function at
+ the end of the file, just like it omits blank lines before the next
+ function.
+
+ * The value of http.proxy can have "path" at the end for a socks
+ proxy that listens to a unix-domain socket, but we started to
+ discard it when we taught proxy auth code path to use the
+ credential helpers, which has been corrected.
+
+ * The code paths to compact multiple reftable files have been updated
+ to correctly deal with multiple compaction triggering at the same
+ time.
+
+ * Support to specify ref backend for submodules has been enhanced.
+
+ * "git svn" has been taught about svn:global-ignores property
+ recent versions of Subversion has.
+
+ * The default object hash and ref backend format used to be settable
+ only with explicit command line option to "git init" and
+ environment variables, but now they can be configured in the user's
+ global and system wide configuration.
+
+ * "git send-email" learned "--translate-aliases" option that reads
+ addresses from the standard input and emits the result of applying
+ aliases on them to the standard output.
+
+ * 'git for-each-ref' learned a new "--format" atom to find the branch
+ that the history leading to a given commit "%(is-base:<commit>)" is
+ likely based on.
+
+
+Performance, Internal Implementation, Development Support etc.
+--------------------------------------------------------------
+
+ * A build tweak knob has been simplified by not setting the value
+ that is already the default; another unused one has been removed.
+
+ * A CI job that use clang-format to check coding style issues in new
+ code has been added.
+
+ * The reviewing guidelines document now explicitly encourages people
+ to give positive reviews and how.
+
+ * Test script linter has been updated to catch an attempt to use
+ one-shot export construct "VAR=VAL func" for shell functions (which
+ does not work for some shells) better.
+
+ * Some project conventions have been added to CodingGuidelines.
+
+ * In the refs subsystem, implicit reliance of the_repository has been
+ eliminated; the repository associated with the ref store object is
+ used instead.
+
+ * Various tests in reftable library have been rewritten using the unit test
+ framework.
+
+ * A test that fails on an unusually slow machine was found, and made
+ less likely to cause trouble by lengthening the expiry value it
+ uses.
+
+ * An existing test of hashmap API has been rewritten with the
+ unit-test framework.
+
+ * A policy document that describes platform support levels and
+ expectation on platform stakeholders has been introduced.
+
+ * The refs API has been taught to give symref target information to
+ the users of ref iterators, allowing for-each-ref and friends to
+ avoid an extra ref_resolve_* API call per a symbolic ref.
+
+ * Unit-test framework has learned a simple control structure to allow
+ embedding test statements in-line instead of having to create a new
+ function to contain them.
+
+ * Incremental updates of multi-pack index files is getting worked on.
+
+ * Use of API functions that implicitly depend on the_repository
+ object in the config subsystem has been rewritten to pass a
+ repository object through the callchain.
+
+ * Drop unused parameters from functions.
+
+ * Mark unused parameters as UNUSED to squelch -Wunused warnings.
+
+
+Fixes since v2.46
+-----------------
+
+ * "git add -p" by users with diff.suppressBlankEmpty set to true
+ failed to parse the patch that represents an unmodified empty line
+ with an empty line (not a line with a single space on it), which
+ has been corrected.
+
+ * "git checkout --ours" (no other arguments) complained that the
+ option is incompatible with branch switching, which is technically
+ correct, but found confusing by some users. It now says that the
+ user needs to give pathspec to specify what paths to checkout.
+
+ * It has been documented that we avoid "VAR=VAL shell_func" and why.
+
+ * "git rebase --help" referred to "offset" (the difference between
+ the location a change was taken from and the change gets replaced)
+ incorrectly and called it "fuzz", which has been corrected.
+
+ * "git notes add -m '' --allow-empty" and friends that take prepared
+ data to create notes should not invoke an editor, but it started
+ doing so since Git 2.42, which has been corrected.
+
+ * An expensive operation to prepare tracing was done in re-encoding
+ code path even when the tracing was not requested, which has been
+ corrected.
+
+ * More leakfixes.
+ (merge f30bfafcd4 ps/leakfixes-part-3 later to maint).
+
+ * The credential helper to talk to OSX keychain sometimes sent
+ garbage bytes after the username, which has been corrected.
- (merge 9e89dcb66a ps/ls-remote-out-of-repo-fix later to maint).
+
+ * A recent update broke "git ls-remote" used outside a repository,
+ which has been corrected.
- (merge 615d2de3b4 tb/config-fixed-value-with-valueless-true later to maint).
+
+ * The patch parser in 'git apply' has been a bit more lenient against
+ unexpected mode bits, like 100664, recorded on extended header lines.
+ (merge e95d515141 jk/apply-patch-mode-check-fix later to maint).
+
+ * "git config --value=foo --fixed-value section.key newvalue" barfed
+ when the existing value in the configuration file used the
+ valueless true syntax, which has been corrected.
- (merge 5133ead528 jc/reflog-expire-lookup-commit-fix later to maint).
+
+ * The patch parser in "git patch-id" has been tightened to avoid
+ getting confused by lines that look like a patch header in the log
+ message.
+ (merge a6e9429f72 jc/patch-id later to maint).
+
+ * "git reflog expire" failed to honor annotated tags when computing
+ reachable commits.
- (merge ec60bb9fc4 kl/test-fixes later to maint).
+
+ * A flakey test and incorrect calls to strtoX() functions have been
+ fixed.
- (merge ee0be850b0 jc/safe-directory later to maint).
+
+ * Follow-up on 2.45.1 regression fix.
- (merge a77554ea09 xx/diff-tree-remerge-diff-fix later to maint).
+
+ * "git rev-list ... | git diff-tree -p --remerge-diff --stdin" should
+ behave more or less like "git log -p --remerge-diff" but instead it
+ crashed, forgetting to prepare a temporary object store needed.
- (merge 7c7516b8db jc/jl-git-no-advice-fix later to maint).
- (merge c3d034df16 jc/leakfix-hashfile later to maint).
- (merge d98d9c77e5 jc/leakfix-mailmap later to maint).
- (merge c199707496 jr/ls-files-expand-literal-doc later to maint).
- (merge e2e373ba82 ss/packed-ref-store-leakfix later to maint).
- (merge 0c4d5aa22d rs/use-decimal-width later to maint).
- (merge 67be8c4de5 jc/document-use-of-local later to maint).
- (merge 098be29f5b rs/t-example-simplify later to maint).
+
+ * "git bundle unbundle" outside a repository triggered a BUG()
+ unnecessarily, which has been corrected.
+ (merge 96a9a3e42e ps/bundle-outside-repo-fix later to maint).
+
+ * Maintenance tasks other than "gc" now properly go background when
+ "git maintenance" runs them.
+
+ * We created a useless pseudo-merge reachability bitmap that is about
+ 0 commits, and attempted to include commits that are not in packs,
+ which made no sense. These bugs have been corrected.
+ (merge a72dfab8b8 tb/pseudo-merge-bitmap-fixes later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
+ (merge bb0498b1bb jc/how-to-maintain-updates later to maint).
+ (merge 0d66f601a9 jc/tests-no-useless-tee later to maint).
+ (merge 170cdfc5a4 jc/grammo-fixes later to maint).
+ (merge 983555a1f2 jc/how-to-maintain-updates later to maint).
+ (merge e3209bd4df ps/stash-keep-untrack-empty-fix later to maint).
+ (merge 44db6f75cc jc/coding-style-c-operator-with-spaces later to maint).