]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Sync with Git 2.25.2
authorJunio C Hamano <gitster@pobox.com>
Tue, 17 Mar 2020 22:16:14 +0000 (15:16 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Mar 2020 22:27:15 +0000 (15:27 -0700)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1  2 
Documentation/RelNotes/2.26.0.txt

index 98b2ed8e652e0159f60761ca54d8db037cec5b2c,0000000000000000000000000000000000000000..719750dbb5ffaaa3eba9f96547f7447c14d59466
mode 100644,000000..100644
--- /dev/null
@@@ -1,364 -1,0 +1,341 @@@
-    (merge 849e43cc18 js/builtin-add-i-cmds later to maint).
 +Git 2.26 Release Notes
 +======================
 +
 +Updates since v2.25
 +-------------------
 +
 +Backward compatibility notes
 +
 + * "git rebase" uses a different backend that is based on the 'merge'
 +   machinery by default.  There are a few known differences in the
 +   behaviour from the traditional machniery based on patch+apply.
 +
 +   If your workflow is negatively affected by this change, please
 +   report it to git@vger.kernel.org so that we can take a look into
 +   it.  After doing so, you can set the 'rebase.backend' configuration
 +   variable to 'apply', in order to use the old default behaviour in
 +   the meantime.
 +
 +
 +UI, Workflows & Features
 +
 + * Sample credential helper for using .netrc has been updated to work
 +   out of the box.
 +
 + * gpg.minTrustLevel configuration variable has been introduced to
 +   tell various signature verification codepaths the required minimum
 +   trust level.
 +
 + * The command line completion (in contrib/) learned to complete
 +   subcommands and arguments to "git worktree".
 +
 + * Disambiguation logic to tell revisions and pathspec apart has been
 +   tweaked so that backslash-escaped glob special characters do not
 +   count in the "wildcards are pathspec" rule.
 +
 + * One effect of specifying where the GIT_DIR is (either with the
 +   environment variable, or with the "git --git-dir=<where> cmd"
 +   option) is to disable the repository discovery.  This has been
 +   placed a bit more stress in the documentation, as new users often
 +   get confused.
 +
 + * Two help messages given when "git add" notices the user gave it
 +   nothing to add have been updated to use advise() API.
 +
 + * A new version of fsmonitor-watchman hook has been introduced, to
 +   avoid races.
 +
 + * "git config" learned to show in which "scope", in addition to in
 +   which file, each config setting comes from.
 +
 + * The basic 7 colors learned the brighter counterparts
 +   (e.g. "brightred").
 +
 + * "git sparse-checkout" learned a new "add" subcommand.
 +
 + * A configuration element used for credential subsystem can now use
 +   wildcard pattern to specify for which set of URLs the entry
 +   applies.
 +
 + * "git clone --recurse-submodules --single-branch" now uses the same
 +   single-branch option when cloning the submodules.
 +
 + * "git rm" and "git stash" learns the new "--pathspec-from-file"
 +   option.
 +
 + * "git am --short-current-patch" is a way to show the piece of e-mail
 +   for the stopped step, which is not suitable to directly feed "git
 +   apply" (it is designed to be a good "git am" input).  It learned a
 +   new option to show only the patch part.
 +
 + * Handling of conflicting renames in merge-recursive have further
 +   been made consistent with how existing codepaths try to mimic what
 +   is done to add/add conflicts.
 +
 +
 +Performance, Internal Implementation, Development Support etc.
 +
 + * Tell .editorconfig that in this project, *.txt files are indented
 +   with tabs.
 +
 + * The test-lint machinery knew to check "VAR=VAL shell_function"
 +   construct, but did not check "VAR= shell_funciton", which has been
 +   corrected.
 +
 + * Replace "git config --bool" calls with "git config --type=bool" in
 +   sample templates.
 +
 + * The effort to move "git-add--interactive" to C continues.
 +
 + * Improve error message generation for "git submodule add".
 +
 + * Preparation of test scripts for the day when the object names will
 +   use SHA-256 continues.
 +
 + * Warn programmers about pretend_object_file() that allows the code
 +   to tentatively use in-core objects.
 +
 + * The way "git pack-objects" reuses objects stored in existing pack
 +   to generate its result has been improved.
 +
 + * The transport protocol version 2 becomes the default one.
 +
 + * Traditionally, we avoided threaded grep while searching in objects
 +   (as opposed to files in the working tree) as accesses to the object
 +   layer is not thread-safe.  This limitation is getting lifted.
 +
 + * "git rebase -i" (and friends) used to unnecessarily check out the
 +   tip of the branch to be rebased, which has been corrected.
 +
 + * A low-level API function get_oid(), that accepts various ways to
 +   name an object, used to issue end-user facing error messages
 +   without l10n, which has been updated to be translatable.
 +
 + * Unneeded connectivity check is now disabled in a partial clone when
 +   fetching into it.
 +
 + * Some rough edges in the sparse-checkout feature, especially around
 +   the cone mode, have been cleaned up.
 +
 + * The diff-* plumbing family of subcommands now pay attention to the
 +   diff.wsErrorHighlight configuration, which has been ignored before;
 +   this allows "git add -p" to also show the whitespace problems to
 +   the end user.
 +
 + * Some codepaths were given a repository instance as a parameter to
 +   work in the repository, but passed the_repository instance to its
 +   callees, which has been cleaned up (somewhat).
 +
 + * Memory footprint and performance of "git name-rev" has been
 +   improved.
 +
 + * The object reachability bitmap machinery and the partial cloning
 +   machinery were not prepared to work well together, because some
 +   object-filtering criteria that partial clones use inherently rely
 +   on object traversal, but the bitmap machinery is an optimization
 +   to bypass that object traversal.  There however are some cases
 +   where they can work together, and they were taught about them.
 +
 + * "git rebase" has learned to use the merge backend (i.e. the
 +   machinery that drives "rebase -i") by default, while allowing
 +   "--apply" option to use the "apply" backend (e.g. the moral
 +   equivalent of "format-patch piped to am").  The rebase.backend
 +   configuration variable can be set to customize.
 +
 + * Underlying machinery of "git bisect--helper" is being refactored
 +   into pieces that are more easily reused.
 +
 +
 +Fixes since v2.25
 +-----------------
 +
 + * "git commit" gives output similar to "git status" when there is
 +   nothing to commit, but without honoring the advise.statusHints
 +   configuration variable, which has been corrected.
 +
 + * has_object_file() said "no" given an object registered to the
 +   system via pretend_object_file(), making it inconsistent with
 +   read_object_file(), causing lazy fetch to attempt fetching an
 +   empty tree from promisor remotes.
 +
 + * Complete an update to tutorial that encourages "git switch" over
 +   "git checkout" that was done only half-way.
 +
 + * C pedantry ;-) fix.
 +
 + * The code that tries to skip over the entries for the paths in a
 +   single directory using the cache-tree was not careful enough
 +   against corrupt index file.
 +
 + * Reduce unnecessary round-trip when running "ls-remote" over the
 +   stateless RPC mechanism.
 +
 + * "git restore --staged" did not correctly update the cache-tree
 +   structure, resulting in bogus trees to be written afterwards, which
 +   has been corrected.
 +
 + * The code recently added to move to the entry beyond the ones in the
 +   same directory in the index in the sparse-cone mode did not count
 +   the number of entries to skip over incorrectly, which has been
 +   corrected.
 +
 + * Rendering by "git log --graph" of ancestry lines leading to a merge
 +   commit were made suboptimal to waste vertical space a bit with a
 +   recent update, which has been corrected.
 +
 + * Work around test breakages caused by custom regex engine used in
 +   libasan, when address sanitizer is used with more recent versions
 +   of gcc and clang.
 +
 + * Minor bugfixes to "git add -i" that has recently been rewritten in C.
-    (merge a9472afb63 pb/recurse-submodule-in-worktree-fix later to maint).
 +
 + * "git fetch --refmap=" option has got a better documentation.
 +
 + * "git checkout X" did not correctly fail when X is not a local
 +   branch but could name more than one remote-tracking branches
 +   (i.e. to be dwimmed as the starting point to create a corresponding
 +   local branch), which has been corrected.
 +   (merge fa74180d08 am/checkout-file-and-ref-ref-ambiguity later to maint).
 +
 + * Corner case bugs in "git clean" that stems from a (necessarily for
 +   performance reasons) awkward calling convention in the directory
 +   enumeration API has been corrected.
 +
 + * A fetch that is told to recursively fetch updates in submodules
 +   inevitably produces reams of output, and it becomes hard to spot
 +   error messages.  The command has been taught to enumerate
 +   submodules that had errors at the end of the operation.
 +   (merge 0222540827 es/fetch-show-failed-submodules-atend later to maint).
 +
 + * The "--recurse-submodules" option of various subcommands did not
 +   work well when run in an alternate worktree, which has been
 +   corrected.
-    (merge 7edee32985 dt/submodule-rm-with-stale-cache later to maint).
 +
 + * Futureproofing a test not to depend on the current implementation
 +   detail.
 +
 + * Running "git rm" on a submodule failed unnecessarily when
 +   .gitmodules is only cache-dirty, which has been corrected.
-    (merge cf82bff73f jk/clang-sanitizer-fixes later to maint).
 +
 + * C pedantry ;-) fix.
-    (merge 26027625dd js/rebase-i-with-colliding-hash later to maint).
 +
 + * "git grep --no-index" should not get affected by the contents of
 +   the .gitmodules file but when "--recurse-submodules" is given or
 +   the "submodule.recurse" variable is set, it did.  Now these
 +   settings are ignored in the "--no-index" mode.
 +
 + * Technical details of the bundle format has been documented.
 +
 + * Unhelpful warning messages during documentation build have been squelched.
 +
 + * "git rebase -i" identifies existing commits in its todo file with
 +   their abbreviated object name, which could become ambigous as it
 +   goes to create new commits, and has a mechanism to avoid ambiguity
 +   in the main part of its execution.  A few other cases however were
 +   not covered by the protection against ambiguity, which has been
 +   corrected.
-    (merge dbc27477ff jh/notes-fanout-fix later to maint).
 +
 + * Allow the rebase.missingCommitsCheck configuration to kick in when
 +   "rebase --edit-todo" and "rebase --continue" restarts the procedure.
 +   (merge 5a5445d878 ag/edit-todo-drop-check later to maint).
 +
 + * The way "git submodule status" reports an initialized but not yet
 +   populated submodule has not been reimplemented correctly when a
 +   part of the "git submodule" command was rewritten in C, which has
 +   been corrected.
 +   (merge f38c92452d pk/status-of-uncloned-submodule later to maint).
 +
 + * The code to automatically shrink the fan-out in the notes tree had
 +   an off-by-one bug, which has been killed.
-    (merge a21781011f jk/index-pack-dupfix later to maint).
 +
 + * The index-pack code now diagnoses a bad input packstream that
 +   records the same object twice when it is used as delta base; the
 +   code used to declare a software bug when encountering such an
 +   input, but it is an input error.
-    (merge 2607d39da3 jk/doc-diff-parallel later to maint).
++
 +
 + * The code to compute the commit-graph has been taught to use a more
 +   robust way to tell if two object directories refer to the same
 +   thing.
 +   (merge a7df60cac8 tb/commit-graph-object-dir later to maint).
 +
 + * "git remote rename X Y" needs to adjust configuration variables
 +   (e.g. branch.<name>.remote) whose value used to be X to Y.
 +   branch.<name>.pushRemote is now also updated.
 +
 + * Update to doc-diff.
-    (merge 0aa6ce3094 jk/push-option-doc-markup-fix later to maint).
 +
 + * Doc markup fix.
-    (merge 7ec8125fba en/check-ignore later to maint).
 +
 + * "git check-ignore" did not work when the given path is explicitly
 +   marked as not ignored with a negative entry in the .gitignore file.
-    (merge fb1c18fc46 en/t3433-rebase-stat-dirty-failure later to maint).
 +
 + * The merge-recursive machinery failed to refresh the cache entry for
 +   a merge result in a couple of places, resulting in an unnecessary
 +   merge failure, which has been fixed.
-    (merge 3e96c66805 ds/partial-clone-fixes later to maint).
 +
 + * Fix for a bug revealed by a recent change to make the protocol v2
 +   the default.
-    (merge 0106b1d4be hi/gpg-use-check-signature later to maint).
 +
 + * In rare cases "git worktree add <path>" could think that <path>
 +   was already a registered worktree even when it wasn't and refuse
 +   to add the new worktree. This has been corrected.
 +   (merge bb69b3b009 es/worktree-avoid-duplication-fix later to maint).
 +
 + * "git push" should stop from updating a branch that is checked out
 +   when receive.denyCurrentBranch configuration is set, but it failed
 +   to pay attention to checkouts in secondary worktrees.  This has
 +   been corrected.
 +   (merge 4d864895a2 hv/receive-denycurrent-everywhere later to maint).
 +
 + * "git rebase BASE BRANCH" rebased/updated the tip of BRANCH and
 +   checked it out, even when the BRANCH is checked out in a different
 +   worktree.  This has been corrected.
 +   (merge b5cabb4a96 es/do-not-let-rebase-switch-to-protected-branch later to maint).
 +
 + * "git describe" in a repository with multiple root commits sometimes
 +   gave up looking for the best tag to describe a given commit with
 +   too early, which has been adjusted.
 +
 + * "git merge signed-tag" while lacking the public key started to say
 +   "No signature", which was utterly wrong.  This regression has been
 +   reverted.
-    (merge 94f4d01932 am/mingw-poll-fix later to maint).
 +
 + * MinGW's poll() emulation has been improved.
-    (merge 237a28173f hd/show-one-mergetag-fix later to maint).
 +
 + * "git show" and others gave an object name in raw format in its
 +   error output, which has been corrected to give it in hex.
-    (merge 1ff466c018 jc/doc-single-h-is-for-help later to maint).
 +
 + * "git fetch" over HTTP walker protocol did not show any progress
 +   output.  We inherently do not know how much work remains, but still
 +   we can show something not to bore users.
 +   (merge 7655b4119d rs/show-progress-in-dumb-http-fetch later to maint).
 +
 + * Both "git ls-remote -h" and "git grep -h" give short usage help,
 +   like any other Git subcommand, but it is not unreasonable to expect
 +   that the former would behave the same as "git ls-remote --head"
 +   (there is no other sensible behaviour for the latter).  The
 +   documentation has been updated in an attempt to clarify this.
-    (merge 26f924d50e en/simplify-check-updates-in-unpack-trees later to maint).
 +
 + * Other code cleanup, docfix, build fix, etc.
-    (merge 076ee3e8a2 js/test-write-junit-xml-fix later to maint).
 +   (merge d0d0a357a1 am/update-pathspec-f-f-tests later to maint).
 +   (merge f94f7bd00d am/test-pathspec-f-f-error-cases later to maint).
 +   (merge c513a958b6 ss/t6025-modernize later to maint).
 +   (merge b441717256 dl/test-must-fail-fixes later to maint).
 +   (merge d031049da3 mt/sparse-checkout-doc-update later to maint).
 +   (merge 145136a95a jc/skip-prefix later to maint).
 +   (merge 5290d45134 jk/alloc-cleanups later to maint).
 +   (merge 7a9f8ca805 rs/parse-options-concat-dup later to maint).
 +   (merge 517b60564e rs/strbuf-insertstr later to maint).
 +   (merge f696a2b1c8 jk/mailinfo-cleanup later to maint).
-    (merge bfe2bbb47f js/test-unc-fetch later to maint).
-    (merge 08809c09aa js/mingw-open-in-gdb later to maint).
-    (merge cc4f2eb828 jk/doc-credential-helper later to maint).
-    (merge e0020b2f82 es/outside-repo-errmsg-hints later to maint).
 +   (merge de26f02db1 js/test-avoid-pipe later to maint).
-    (merge 539052f42f jk/run-command-formatfix later to maint).
 +   (merge a2dc43414c es/doc-mentoring later to maint).
-    (merge 7f487ce062 js/ci-windows-update later to maint).
 +   (merge 02bbbe9df9 es/worktree-cleanup later to maint).
 +   (merge 2ce6d075fa rs/micro-cleanups later to maint).
 +   (merge 27f182b3fc rs/blame-typefix-for-fingerprint later to maint).
 +   (merge 3c29e21eb0 ma/test-cleanup later to maint).
 +   (merge 240fc04f81 ag/rebase-remove-redundant-code later to maint).
 +   (merge d68ce906c7 rs/commit-graph-code-simplification later to maint).
 +   (merge a51d9e8f07 rj/t1050-use-test-path-is-file later to maint).
 +   (merge fd0bc17557 kk/complete-diff-color-moved later to maint).
 +   (merge 65bf820d0e en/test-cleanup later to maint).