made the pack completely portable and wrote relevent bat files to go with it
This commit is contained in:
334
gitportable/mingw64/share/doc/git-doc/RelNotes/2.44.0.adoc
Normal file
334
gitportable/mingw64/share/doc/git-doc/RelNotes/2.44.0.adoc
Normal file
@@ -0,0 +1,334 @@
|
||||
Git v2.44 Release Notes
|
||||
=======================
|
||||
|
||||
Backward Compatibility Notes
|
||||
|
||||
* "git checkout -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/.gitconfig is missing but XDG config file is 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").
|
||||
|
||||
* The command line completion script (in contrib/) learned to
|
||||
complete configuration variable names better.
|
||||
|
||||
|
||||
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".
|
||||
|
||||
* 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.
|
||||
|
||||
* 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.
|
||||
|
||||
* "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.
|
||||
|
||||
* Rewrite //-comments to /* comments */ in files whose comments
|
||||
prevalently use the latter.
|
||||
|
||||
* 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.
|
||||
|
||||
* "git stash" sometimes was silent even when it failed due to
|
||||
unwritable index file, which has been corrected.
|
||||
|
||||
* "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.
|
||||
|
||||
* The sequencer machinery does not use the ref API and instead
|
||||
records names of certain objects it needs for its correct operation
|
||||
in temporary files, which makes these objects susceptible to loss
|
||||
by garbage collection. These temporary files have been added as
|
||||
starting points for reachability analysis to fix this.
|
||||
(merge bc7f5db896 pw/gc-during-rebase later to maint).
|
||||
|
||||
* "git cherry-pick" invoked during "git rebase -i" session lost
|
||||
the authorship information, which has been corrected.
|
||||
(merge e4301f73ff vn/rebase-with-cherry-pick-authorship later to maint).
|
||||
|
||||
* The code paths that call repo_read_object_file() have been
|
||||
tightened to react to errors.
|
||||
(merge 568459bf5e js/check-null-from-read-object-file 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 8430b438f6 vd/fsck-submodule-url-test later to maint).
|
||||
(merge 3cb4384683 jc/t0091-with-unknown-git later to maint).
|
||||
(merge 020456cb74 rs/receive-pack-remove-find-header later to maint).
|
||||
(merge bc47139f4f la/trailer-cleanups later to maint).
|
||||
Reference in New Issue
Block a user