]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Git 2.44-rc1 v2.44.0-rc1
authorJunio C Hamano <gitster@pobox.com>
Tue, 13 Feb 2024 22:47:02 +0000 (14:47 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Feb 2024 23:12:53 +0000 (15:12 -0800)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1  2 
Documentation/RelNotes/2.44.0.txt
GIT-VERSION-GEN

index 1b823daa19427f69ffd619cba92de293117df96e,0000000000000000000000000000000000000000..30dbdcf8eee62ee4e40c31872d9b362b143d10ce
mode 100644,000000..100644
--- /dev/null
@@@ -1,333 -1,0 +1,314 @@@
-    (merge 0aabeaa562 tc/show-ref-exists-fix later to maint).
 +Git v2.44 Release Notes
 +=======================
 +
 +Backward Compatibility Notes
 +
 + * "git chekcout -B <branch>" used to allow switching to a branch that
 +   is in use on another worktree, but this was by mistake.  The users
 +   need to use "--ignore-other-worktrees" option.
 +
 +
 +UI, Workflows & Features
 +
 + * "git add" and "git stash" learned to support the ":(attr:...)"
 +   magic pathspec.
 +
 + * "git rebase --autosquash" is now enabled for non-interactive rebase,
 +   but it is still incompatible with the apply backend.
 +
 + * Introduce "git replay", a tool meant on the server side without
 +   working tree to recreate a history.
 +
 + * "git merge-file" learned to take the "--diff-algorithm" option to
 +   use algorithm different from the default "myers" diff.
 +
 + * Command line completion (in contrib/) learned to complete path
 +   arguments to the "add/set" subcommands of "git sparse-checkout"
 +   better.
 +
 + * "git checkout -B <branch> [<start-point>]" allowed a branch that is
 +   in use in another worktree to be updated and checked out, which
 +   might be a bit unexpected.  The rule has been tightened, which is a
 +   breaking change.  "--ignore-other-worktrees" option is required to
 +   unbreak you, if you are used to the current behaviour that "-B"
 +   overrides the safety.
 +
 + * The builtin_objectmode attribute is populated for each path
 +   without adding anything in .gitattributes files, which would be
 +   useful in magic pathspec, e.g., ":(attr:builtin_objectmode=100755)"
 +   to limit to executables.
 +
 + * "git fetch" learned to pay attention to "fetch.all" configuration
 +   variable, which pretends as if "--all" was passed from the command
 +   line when no remote parameter was given.
 +
 + * In addition to (rather cryptic) Security Identifiers, show username
 +   and domain in the error message when we barf on mismatch between
 +   the Git directory and the current user on Windows.
 +
 + * The error message given when "git branch -d branch" fails due to
 +   commits unique to the branch has been split into an error and a new
 +   conditional advice message.
 +
 + * When given an existing but unreadable file as a configuration file,
 +   gitweb behaved as if the file did not exist at all, but now it
 +   errors out.  This is a change that may break backward compatibility.
 +
 + * When $HOME/.gitignore is missing but XDG config file available, we
 +   should write into the latter, not former.  "git gc" and "git
 +   maintenance" wrote into a wrong "global config" file, which have
 +   been corrected.
 +
 + * Define "special ref" as a very narrow set that consists of
 +   FETCH_HEAD and MERGE_HEAD, and clarify everything else that used to
 +   be classified as such are actually just pseudorefs.
 +
 + * All conditional "advice" messages show how to turn them off, which
 +   becomes repetitive.  Setting advice.* configuration explicitly on
 +   now omits the instruction part.
 +
 + * The "disable repository discovery of a bare repository" check,
 +   triggered by setting safe.bareRepository configuration variable to
 +   'explicit', has been loosened to exclude the ".git/" directory inside
 +   a non-bare repository from the check.  So you can do "cd .git &&
 +   git cmd" to run a Git command that works on a bare repository without
 +   explicitly specifying $GIT_DIR now.
 +
 + * The completion script (in contrib/) learned more options that can
 +   be used with "git log".
 +
 + * The labels on conflict markers for the common ancestor, our version,
 +   and the other version are available to custom 3-way merge driver
 +   via %S, %X, and %Y placeholders.
 +
 + * The write codepath for the reftable data learned to honor
 +   core.fsync configuration.
 +
 + * The "--fsck-objects" option of "git index-pack" now can take the
 +   optional parameter to tweak severity of different fsck errors.
 +
 + * The wincred credential backend has been taught to support oauth
 +   refresh token the same way as credential-cache and
 +   credential-libsecret backends.
 +
 + * Command line completion support (in contrib/) has been
 +   updated for "git bisect".
 +
 + * "git branch" and friends learned to use the formatted text as
 +   sorting key, not the underlying timestamp value, when the --sort
 +   option is used with author or committer timestamp with a format
 +   specifier (e.g., "--sort=creatordate:format:%H:%M:%S").
 +
 +
 +Performance, Internal Implementation, Development Support etc.
 +
 + * Process to add some form of low-level unit tests has started.
 +
 + * Add support for GitLab CI.
 +
 + * "git for-each-ref --no-sort" still sorted the refs alphabetically
 +   which paid non-trivial cost.  It has been redefined to show output
 +   in an unspecified order, to allow certain optimizations to take
 +   advantage of.
 +
 + * Simplify API implementation to delete references by eliminating
 +   duplication.
 +
 + * Subject approxidate() and show_date() machinery to OSS-Fuzz.
 +
 + * A new helper to let us pretend that we called lstat() when we know
 +   our cache_entry is up-to-date via fsmonitor.
 +
 + * The optimization based on fsmonitor in the "diff --cached"
 +   codepath is resurrected with the "fake-lstat" introduced earlier.
 +
 + * Test balloon to use C99 "bool" type from <stdbool.h> has been
 +   added.
 +
 + * "git clone" has been prepared to allow cloning a repository with
 +   non-default hash function into a repository that uses the reftable
 +   backend.
 +
 + * Streaming spans of packfile data used to be done only from a
 +   single, primary, pack in a repository with multiple packfiles.  It
 +   has been extended to allow reuse from other packfiles, too.
 +
 + * Comment updates to help developers not to attempt to modify
 +   messages from plumbing commands that must stay constant.
 +
 +   It might make sense to reassess the plumbing needs every few years,
 +   but that should be done as a separate effort.
 +
 + * Move test-ctype helper to the unit-test framework.
 +
 + * Instead of manually creating refs/ hierarchy on disk upon a
 +   creation of a secondary worktree, which is only usable via the
 +   files backend, use the refs API to populate it.
 +
 + * CI for GitLab learned to drive macOS jobs.
 +
 + * A few tests to "git commit -o <pathspec>" and "git commit -i
 +   <pathspec>" has been added.
 +
 + * Tests on ref API are moved around to prepare for reftable.
 +
 + * The Makefile often had to say "-L$(path) -R$(path)" that repeats
 +   the path to the same library directory for link time and runtime.
 +   A Makefile template is used to reduce such repetition.
 +
 + * The priority queue test has been migrated to the unit testing
 +   framework.
 +
 + * Setting `feature.experimental` opts the user into multi-pack reuse
 +   experiment
 +
 + * Squelch node.js 16 deprecation warnings from GitHub Actions CI
 +   by updating actions/github-script and actions/checkout that use
 +   node.js 20.
 +
 + * The mechanism to report the filename in the source code, used by
 +   the unit-test machinery, assumed that the compiler expanded __FILE__
 +   to the path to the source given to the $(CC), but some compilers
 +   give full path, breaking the output.  This has been corrected.
 +
 +
 +Fixes since v2.43
 +-----------------
 +
 + * The way CI testing used "prove" could lead to running the test
 +   suite twice needlessly, which has been corrected.
 +
 + * Update ref-related tests.
 +
 + * "git format-patch --encode-email-headers" ignored the option when
 +   preparing the cover letter, which has been corrected.
 +
 + * Newer versions of Getopt::Long started giving warnings against our
 +   (ab)use of it in "git send-email".  Bump the minimum version
 +   requirement for Perl to 5.8.1 (from September 2002) to allow
 +   simplifying our implementation.
 +
 + * Earlier we stopped relying on commit-graph that (still) records
 +   information about commits that are lost from the object store,
 +   which has negative performance implications.  The default has been
 +   flipped to disable this pessimization.
 +
 + * Stale URLs have been updated to their current counterparts (or
 +   archive.org) and HTTP links are replaced with working HTTPS links.
 +
 + * trace2 streams used to record the URLs that potentially embed
 +   authentication material, which has been corrected.
 +
 + * The sample pre-commit hook that tries to catch introduction of new
 +   paths that use potentially non-portable characters did not notice
 +   an existing path getting renamed to such a problematic path, when
 +   rename detection was enabled.
 +
 + * The command line parser for the "log" family of commands was too
 +   loose when parsing certain numbers, e.g., silently ignoring the
 +   extra 'q' in "git log -n 1q" without complaining, which has been
 +   tightened up.
 +
 + * "git $cmd --end-of-options --rev -- --path" for some $cmd failed
 +   to interpret "--rev" as a rev, and "--path" as a path.  This was
 +   fixed for many programs like "reset" and "checkout".
 +
 + * "git bisect reset" has been taught to clean up state files and refs
 +   even when BISECT_START file is gone.
 +
 + * Some codepaths did not correctly parse configuration variables
 +   specified with valueless "true", which has been corrected.
 +
 + * Code clean-up for sanity checking of command line options for "git
 +   show-ref".
 +
 + * The code to parse the From e-mail header has been updated to avoid
 +   recursion.
 +
 + * "git fetch --atomic" issued an unnecessary empty error message,
 +   which has been corrected.
 +
 + * Command line completion script (in contrib/) learned to work better
 +   with the reftable backend.
 +
 + * "git status" is taught to show both the branch being bisected and
 +   being rebased when both are in effect at the same time.
 +
 + * "git archive --list extra garbage" silently ignored excess command
 +   line parameters, which has been corrected.
 +
 + * "git sparse-checkout set" added default patterns even when the
 +   patterns are being fed from the standard input, which has been
 +   corrected.
 +
 + * "git sparse-checkout (add|set) --[no-]cone --end-of-options" did
 +   not handle "--end-of-options" correctly after a recent update.
 +
 + * Unlike other environment variables that took the usual
 +   true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1,
 +   which has been corrected.
 +
 + * Clearing in-core repository (happens during e.g., "git fetch
 +   --recurse-submodules" with commit graph enabled) made in-core
 +   commit object in an inconsistent state by discarding the necessary
 +   data from commit-graph too early, which has been corrected.
 +
 + * Update to a new feature recently added, "git show-ref --exists".
-    (merge 1c5bc6971e en/diffcore-delta-final-line-fix later to maint).
 +
 + * oss-fuzz tests are built and run in CI.
 +   (merge c4a9cf1df3 js/oss-fuzz-build-in-ci later to maint).
 +
 + * Rename detection logic ignored the final line of a file if it is an
 +   incomplete line.
-    (merge 457f96252f rs/parse-options-with-keep-unknown-abbrev-fix later to maint).
 +
 + * GitHub CI update.
 +   (merge 0188b2c8e0 pb/ci-github-skip-logs-for-broken-tests later to maint).
 +
 + * "git diff --no-rename A B" did not disable rename detection but did
 +   not trigger an error from the command line parser.
-    (merge 85a9a63c92 jk/diff-external-with-no-index later to maint).
 +
 + * "git archive --remote=<remote>" learned to talk over the smart
 +   http (aka stateless) transport.
 +   (merge 176cd68634 jx/remote-archive-over-smart-http later to maint).
 +
 + * Fetching via protocol v0 over Smart HTTP transport sometimes failed
 +   to correctly auto-follow tags.
 +   (merge fba732c462 jk/fetch-auto-tag-following-fix later to maint).
 +
 + * The documentation for the --exclude-per-directory option marked it
 +   as deprecated, which confused readers into thinking there may be a
 +   plan to remove it in the future, which was not our intention.
 +   (merge 0009542cab jc/ls-files-doc-update later to maint).
 +
 + * "git diff --no-index file1 file2" segfaulted while invoking the
 +   external diff driver, which has been corrected.
-    (merge de65079d7b jc/comment-style-fixes later to maint).
 +
 + * Rewrite //-comments to /* comments */ in files whose comments
 +   prevalently use the latter.
-    (merge 6931049c32 jc/sign-buffer-failure-propagation-fix later to maint).
 +
 + * Cirrus CI jobs started breaking because we specified version of
 +   FreeBSD that is no longer available, which has been corrected.
 +   (merge 81fffb66d3 cb/use-freebsd-13-2-at-cirrus-ci later to maint).
 +
 + * A caller called index_file_exists() that takes a string expressed
 +   as <ptr, length> with a wrong length, which has been corrected.
 +   (merge 156e28b36d jh/sparse-index-expand-to-path-fix later to maint).
 +
 + * A failed "git tag -s" did not necessarily result in an error
 +   depending on the crypto backend, which has been corrected.
-    (merge d2058cb2f0 ps/report-failure-from-git-stash later to maint).
 +
 + * "git stash" sometimes was silent even when it failed due to
 +   unwritable index file, which has been corrected.
-    (merge b40ba17e44 cp/git-flush-is-an-env-bool later to maint).
 +
 + * "git show-ref --verify" did not show things like "CHERRY_PICK_HEAD",
 +   which has been corrected.
 +
 + * Recent conversion to allow more than 0/1 in GIT_FLUSH broke the
 +   mechanism by flipping what yes/no means by mistake, which has been
 +   corrected.
-    (merge 8f50984cf4 ne/doc-filter-blob-limit-fix later to maint).
-    (merge f10b0989b8 la/strvec-comment-fix later to maint).
 +
 + * Other code cleanup, docfix, build fix, etc.
 +   (merge 5aea3955bc rj/clarify-branch-doc-m later to maint).
 +   (merge 9cce3be2df bk/bisect-doc-fix later to maint).
-    (merge f10031fadd nb/rebase-x-shell-docfix later to maint).
-    (merge af3d2c160f jc/majordomo-to-subspace later to maint).
-    (merge ee9895b0ff sd/negotiate-trace-fix later to maint).
-    (merge 976d0251ce jc/coc-whitespace-fix later to maint).
-    (merge 9023198280 jt/p4-spell-re-with-raw-string later to maint).
-    (merge 36c9c44fa4 tb/pack-bitmap-drop-unused-struct-member later to maint).
-    (merge 19ed0dff8f js/win32-retry-pipe-write-on-enospc later to maint).
 +   (merge 8430b438f6 vd/fsck-submodule-url-test later to maint).
-    (merge 841dbd40a3 jc/bisect-doc later to maint).
-    (merge 78307f1a89 pb/template-for-single-commit-pr later to maint).
 +   (merge 3cb4384683 jc/t0091-with-unknown-git later to maint).
diff --cc GIT-VERSION-GEN
index 31db92f47596dd4eed564d1c862235b8aeba8d2c,e1f223debbb684a28c0ae7ce93184028bafb767d..d3a33f0afac0140df97ba7f9304cfa35ae16744b
@@@ -1,7 -1,7 +1,7 @@@
  #!/bin/sh
  
  GVF=GIT-VERSION-FILE
- DEF_VER=v2.44.0-rc0
 -DEF_VER=v2.43.2
++DEF_VER=v2.44.0-rc1
  
  LF='
  '