fetch: introduce machine-parseable "porcelain" output format
[git/gitster.git] / Documentation / RelNotes / 2.41.0.txt
blob576762319703c6c28003a00a761a3032c360a742
1 Git v2.41 Release Notes
2 =======================
4 UI, Workflows & Features
6  * Allow information carried on the WWW-AUthenticate header to be
7    passed to the credential helpers.
9  * A new "fetch.hideRefs" option can be used to exclude specified refs
10    from "rev-list --objects --stdin --not --all" traversal for
11    checking object connectivity, most useful when there are many
12    unrelated histories in a single repository.
14  * "git push" has been taught to allow deletion of refs with one-level
15    names to help repairing a repository who acquired such a ref by
16    mistake.  In general, we don't encourage use of such a ref, and
17    creation or update to such a ref is rejected as before.
19  * Allow "git bisect reset" to check out the original branch when the
20    branch is already checked out in a different worktree linked to the
21    same repository.
23  * A few subcommands have been taught to stop users from working on a
24    branch that is being used in another worktree linked to the same
25    repository.
27  * "git format-patch" learned to write a log-message only output file
28    for empty commits.
30  * "git format-patch" honors the src/dst prefixes set to nonstandard
31    values with configuration variables like "diff.noprefix", causing
32    receiving end of the patch that expects the standard -p1 format to
33    break.  "format-patch" has been taught to ignore end-user configuration
34    and always use the standard prefixes.
36    This is a backward compatibility breaking change.
38  * Lift the limitation that colored prompts can only be used with
39    PROMPT_COMMAND mode.
41  * "git blame --contents=<file> <rev> -- <path>" used to be forbidden,
42    but now it finds the origins of lines starting at <file> contents
43    through the history that leads to <rev>.
45  * "git pack-redundant" gave a warning when run, as the command has
46    outlived its usefulness long ago and is nominated for future
47    removal.  Now we escalate to give an error.
49  * "git clone" from an empty repository learned to propagate the
50    choice of the hash algorithm from the source repository to the
51    newly created repository.
53  * "git mergetool" and "git difftool" learns a new configuration
54    guiDefault to optionally favor configured guitool over non-gui-tool
55    automatically when $DISPLAY is set.
57  * "git branch -d origin/master" would say "no such branch", but it is
58    likely a missed "-r" if refs/remotes/origin/master exists.  The
59    command has been taught to give such a hint in its error message.
61  * Clean-up of the code path that deals with merge strategy option
62    handling in "git rebase".
65 Performance, Internal Implementation, Development Support etc.
67  * Code clean-up to clarify directory traversal API.
69  * Code clean-up to clarify the rule that "git-compat-util.h" must be
70    the first to be included.
72  * More work towards -Wunused.
74  * Instead of forcing each command to choose to honor GPG related
75    configuration variables, make the subsystem lazily initialize
76    itself.
78  * Remove workaround for ancient versions of DocBook to make it work
79    correctly with groff, which has not been necessary since docbook
80    1.76 from 2010.
82  * Code clean-up to include and/or uninclude parse-options.h file as
83    needed.
85  * The code path that reports what "git fetch" did to each ref has
86    been cleaned up.
88  * Assorted config API updates.
90  * A few configuration variables to tell the cURL library that
91    different types of ssl-cert and ssl-key are in use have been added.
93  * Split key function and data structure definitions out of cache.h to
94    new header files and adjust the users.
96  * "git fetch --all" does not have to download and handle the same
97    bundleURI over and over, which has been corrected.
99  * "git sparse-checkout" command learns a debugging aid for the sparse
100    rule definitions.
102  * "git write-tree" learns to work better with sparse-index.
106 Fixes since v2.40
107 -----------------
109  * "git fsck" learned to check the index files in other worktrees,
110    just like "git gc" honors them as anchoring points.
111    (merge 8d3e7eac52 jk/fsck-indices-in-worktrees later to maint).
113  * Fix a segfaulting loop.  The function and its caller may need
114    further clean-up.
115    (merge c5773dc078 ew/commit-reach-clean-up-flags-fix later to maint).
117  * "git restore" supports options like "--ours" that are only
118    meaningful during a conflicted merge, but these options are only
119    meaningful when updating the working tree files.  These options are
120    marked to be incompatible when both "--staged" and "--worktree" are
121    in effect.
122    (merge ee8a88826a ak/restore-both-incompatible-with-conflicts later to maint).
124  * Simplify UI to control progress meter given by "git bundle" command.
125    (merge 8b95521edb jk/bundle-progress later to maint).
127  * "git bundle" learned that "-" is a common way to say that the input
128    comes from the standard input and/or the output goes to the
129    standard output.  It used to work only for output and only from the
130    root level of the working tree.
131    (merge 0bbe10313e jk/bundle-use-dash-for-stdfiles later to maint).
133  * Once we start running, we assumed that the list of alternate object
134    databases would never change.  Hook into the machinery used to
135    update the list of packfiles during runtime to update this list as
136    well.
137    (merge e2d003dbed ds/reprepare-alternates-when-repreparing-packfiles later to maint).
139  * The code to parse "git rebase -X<opt>" was not prepared to see an
140    unparsable option string, which has been corrected.
141    (merge 15a4cc912e ab/fix-strategy-opts-parsing later to maint).
143  * "git add -p" while the index is unmerged sometimes failed to parse
144    the diff output it internally produces and died, which has been
145    corrected.
146    (merge 28d1122f9c jk/add-p-unmerged-fix later to maint).
148  * Fix for a "ls-files --format="%(path)" that produced nonsense
149    output, which was a bug in 2.38.
150    (merge cfb62dd006 aj/ls-files-format-fix later to maint).
152  * "git receive-pack" that responds to "git push" requests failed to
153    clean a stale lockfile when killed in the middle, which has been
154    corrected.
155    (merge c55c30669c ps/receive-pack-unlock-before-die later to maint).
157  * "git rev-parse --quiet foo@{u}", or anything that asks @{u} to be
158    parsed with GET_OID_QUIETLY option, did not quietly fail, which has
159    been corrected.
160    (merge dfbfdc521d fc/oid-quietly-parse-upstream later to maint).
162  * Transports that do not support protocol v2 did not correctly fall
163    back to protocol v0 under certain conditions, which has been
164    corrected.
165    (merge eaa0fd6584 jk/fix-proto-downgrade-to-v0 later to maint).
167  * time(2) on glib 2.31+, especially on Linux, goes out of sync with
168    higher resolution timers used for gettimeofday(2) and by the
169    filesystem.  Replace all calls to it with a git_time() wrapper and
170    (merge 370ddcbc89 pe/time-use-gettimeofday later to maint).
172  * Code clean-up to use designated initializers in parse-options API.
173    (merge 353e6d4554 sg/parse-options-h-initializers later to maint).
175  * A recent-ish change to allow unicode character classes to be used
176    with "grep -P" triggered a JIT bug in older pcre2 libraries.
177    The problematic change in Git built with these older libraries has
178    been disabled to work around the bug.
179    (merge 14b9a04479 mk/workaround-pcre-jit-ucp-bug later to maint).
181  * The wildmatch library code unlearns exponential behaviour it
182    acquired some time ago since it was borrowed from rsync.
183    (merge 3dc0b7f0dc pw/wildmatch-fixes later to maint).
185  * The index files can become corrupt under certain conditions when
186    the split-index feature is in use, especially together with
187    fsmonitor, which have been corrected.
188    (merge 061dd722dc js/split-index-fixes later to maint).
190  * Document what the pathname-looking strings in "rev-list --object"
191    output are for and what they mean.
192    (merge 15364d2a3c jk/document-rev-list-object-name later to maint).
194  * Fix unnecessary truncation of generation numbers used in-core.
195    (merge d3af1c193d ps/ahead-behind-truncation-fix later to maint).
197  * Code clean-up around the use of the_repository.
198    (merge 4a93b899c1 ab/remove-implicit-use-of-the-repository later to maint).
200  * Consistently spell "Message-ID" as such, not "Message-Id".
201    (merge ba4324c4e1 jc/spell-id-in-both-caps-in-message-id later to maint).
203  * Correct use of an uninitialized structure member.
204    (merge dc12ee77ab jx/cap-object-info-uninitialized-fix later to maint).
206  * Tests had a few places where we ignored PERL_PATH and blindly used
207    /usr/bin/perl, which have been corrected.
208    (merge c1917156a0 jk/use-perl-path-consistently later to maint).
210  * Documentation mark-up fix.
211    (merge 78b6369e67 la/mfc-markup-fix later to maint).
213  * Doc toolchain update to remove old workaround for AsciiDoc.
214    (merge 8806120de6 fc/remove-header-workarounds-for-asciidoc later to maint).
216  * Other code cleanup, docfix, build fix, etc.
217    (merge f7111175df as/doc-markup-fix later to maint).
218    (merge 90ff7c9898 fc/test-aggregation-clean-up later to maint).
219    (merge 9b0c7f308a jc/am-doc-refer-to-format-patch later to maint).
220    (merge b10cbdac4c bb/unicode-width-table-15 later to maint).
221    (merge 3457b50e8c ab/retire-scripted-add-p later to maint).
222    (merge d52fcf493b ds/p2000-fix-grep-sparse later to maint).
223    (merge ec063d2591 ss/hashmap-typofix later to maint).
224    (merge 1aaed69d11 rs/archive-mtime later to maint).
225    (merge 2da2cc9b28 ob/rollback-after-commit-lock-failure later to maint).
226    (merge 54dbd0933b ob/sequencer-save-head-simplify later to maint).
227    (merge a93cbe8d78 ar/test-cleanup-unused-file-creation later to maint).
228    (merge cc48ddd937 jk/chainlint-fixes later to maint).
229    (merge 4833b08426 ow/ref-format-remove-unused-member later to maint).
230    (merge d0ea2ca1cf dw/doc-submittingpatches-grammofix later to maint).