| Git 2.23 Release Notes |
| ====================== |
| |
| Updates since v2.22 |
| ------------------- |
| |
| Backward compatibility note |
| |
| * The "--base" option of "format-patch" computed the patch-ids for |
| prerequisite patches in an unstable way, which has been updated to |
| compute in a way that is compatible with "git patch-id --stable". |
| |
| |
| UI, Workflows & Features |
| |
| * The "git fast-export/import" pair has been taught to handle commits |
| with log messages in encoding other than UTF-8 better. |
| |
| * In recent versions of Git, per-worktree refs are exposed in |
| refs/worktrees/<wtname>/ hierarchy, which means that worktree names |
| must be a valid refname component. The code now sanitizes the names |
| given to worktrees, to make sure these refs are well-formed. |
| |
| * "git merge" learned "--quit" option that cleans up the in-progress |
| merge while leaving the working tree and the index still in a mess. |
| |
| * "git format-patch" learns a configuration to set the default for |
| its --notes=<ref> option. |
| |
| * The code to show args with potential typo that cannot be |
| interpreted as a commit-ish has been improved. |
| |
| * "git clone --recurse-submodules" learned to set up the submodules |
| to ignore commit object names recorded in the superproject gitlink |
| and instead use the commits that happen to be at the tip of the |
| remote-tracking branches from the get-go, by passing the new |
| "--remote-submodules" option. |
| |
| * The pattern "git diff/grep" use to extract funcname and words |
| boundary for Matlab has been extend to cover Octave, which is more |
| or less equivalent. |
| |
| * "git help git" was hard to discover (well, at least for some |
| people). |
| |
| * The pattern "git diff/grep" use to extract funcname and words |
| boundary for Rust has been added. |
| |
| |
| Performance, Internal Implementation, Development Support etc. |
| |
| * Update supporting parts of "git rebase" to remove code that should |
| no longer be used. |
| |
| * Developer support to emulate unsatisfied prerequisites in tests to |
| ensure that the remainer of the tests still succeeds when tests |
| with prerequisites are skipped. |
| |
| * "git update-server-info" learned not to rewrite the file with the |
| same contents. |
| |
| * The way of specifying the path to find dynamic libraries at runtime |
| has been simplified. The old default to pass -R/path/to/dir has been |
| replaced with the new default to pass -Wl,-rpath,/path/to/dir, |
| which is the more recent GCC uses. Those who need to build with an |
| old GCC can still use "CC_LD_DYNPATH=-R" |
| |
| * Prepare use of reachability index in topological walker that works |
| on a range (A..B). |
| |
| * A new tutorial targetting specifically aspiring git-core |
| developers has been added. |
| |
| |
| |
| Fixes since v2.22 |
| ----------------- |
| |
| * A relative pathname given to "git init --template=<path> <repo>" |
| ought to be relative to the directory "git init" gets invoked in, |
| but it instead was made relative to the repository, which has been |
| corrected. |
| (merge e1df7fe43f nd/init-relative-template-fix later to maint). |
| |
| * "git worktree add" used to fail when another worktree connected to |
| the same repository was corrupt, which has been corrected. |
| (merge 105df73e71 nd/corrupt-worktrees later to maint). |
| |
| * The ownership rule for the file descriptor to fast-import remote |
| backend was mixed up, leading to unrelated file descriptor getting |
| closed, which has been fixed. |
| (merge 3203566a71 mh/import-transport-fd-fix later to maint). |
| |
| * A "merge -c" instruction during "git rebase --rebase-merges" should |
| give the user a chance to edit the log message, even when there is |
| otherwise no need to create a new merge and replace the existing |
| one (i.e. fast-forward instead), but did not. Which has been |
| corrected. |
| |
| * Code cleanup and futureproof. |
| (merge 31f5256c82 ds/object-info-for-prefetch-fix later to maint). |
| |
| * More parameter validation. |
| (merge de99eb0c24 es/grep-require-name-when-needed later to maint). |
| |
| * "git update-server-info" used to leave stale packfiles in its |
| output, which has been corrected. |
| (merge e941c48d49 ew/server-info-remove-crufts later to maint). |
| |
| * The server side support for "git fetch" used to show incorrect |
| value for the HEAD symbolic ref when the namespace feature is in |
| use, which has been corrected. |
| (merge 533e088250 jk/HEAD-symref-in-xfer-namespaces later to maint). |
| |
| * "git am -i --resolved" segfaulted after trying to see a commit as |
| if it were a tree, which has been corrected. |
| (merge 7663e438c5 jk/am-i-resolved-fix later to maint). |
| |
| * "git bundle verify" needs to see if prerequisite objects exist in |
| the receiving repository, but the command did not check if we are |
| in a repository upfront, which has been corrected. |
| (merge 3bbbe467f2 js/bundle-verify-require-object-store later to maint). |
| |
| * "git merge --squash" is designed to update the working tree and the |
| index without creating the commit, and this cannot be countermanded |
| by adding the "--commit" option; the command now refuses to work |
| when both options are given. |
| (merge 1d14d0c994 vv/merge-squash-with-explicit-commit later to maint). |
| |
| * The data collected by fsmonitor was not properly written back to |
| the on-disk index file, breaking t7519 tests occasionally, which |
| has been corrected. |
| (merge b5a8169752 js/fsmonitor-unflake later to maint). |
| |
| * Update to Unicode 12.1 width table. |
| (merge 5817f9caa3 bb/unicode-12.1-reiwa later to maint). |
| |
| * The command line to invoke a "git cat-file" command from inside |
| "git p4" was not properly quoted to protect a caret and running a |
| broken command on Windows, which has been corrected. |
| (merge c3f2358de3 mm/p4-unshelve-windows-fix later to maint). |
| |
| * "git request-pull" learned to warn when the ref we ask them to pull |
| from in the local repository and in the published repository are |
| different. |
| (merge 0454220d66 pb/request-pull-verify-remote-ref later to maint). |
| |
| * When creating a partial clone, the object filtering criteria is |
| recorded for the origin of the clone, but this incorrectly used a |
| hardcoded name "origin" to name that remote; it has been corrected |
| to honor the "--origin <name>" option. |
| (merge 1c4a9f9114 xl/record-partial-clone-origin later to maint). |
| |
| * "git fetch" into a lazy clone forgot to fetch base objects that are |
| necessary to complete delta in a thin packfile, which has been |
| corrected. |
| (merge 810e19322d jt/partial-clone-missing-ref-delta-base later to maint). |
| |
| * The filter_data used in the list-objects-filter (which manages a |
| lazily sparse clone repository) did not use the dynamic array API |
| correctly---'nr' is supposed to point at one past the last element |
| of the array in use. This has been corrected. |
| (merge 7140600e2e md/list-objects-filter-memfix later to maint). |
| |
| * The description about slashes in gitignore patterns (used to |
| indicate things like "anchored to this level only" and "only |
| matches directories") has been revamped. |
| (merge 1a58bad014 an/ignore-doc-update later to maint). |
| |
| * The URL decoding code has been updated to avoid going past the end |
| of the string while parsing %-<hex>-<hex> sequence. |
| (merge d37dc239a4 md/url-parse-harden later to maint). |
| |
| * The list of for-each like macros used by clang-format has been |
| updated. |
| (merge fc7e03aace mo/clang-format-for-each-update later to maint). |
| |
| * Other code cleanup, docfix, build fix, etc. |
| (merge f547101b26 es/git-debugger-doc later to maint). |
| (merge 7877ac3d7b js/bisect-helper-check-get-oid-return-value later to maint). |
| (merge 0108f47eb3 sw/git-p4-unshelve-branched-files later to maint). |
| (merge 9df8f734fd cm/send-email-document-req-modules later to maint). |
| (merge afc3bf6eb1 ab/hash-object-doc later to maint). |