]> git.ipfire.org Git - thirdparty/git.git/blob - Documentation/RelNotes/2.30.0.txt
Merge branch 'pb/ref-filter-with-crlf'
[thirdparty/git.git] / Documentation / RelNotes / 2.30.0.txt
1 Git 2.30 Release Notes
2 ======================
3
4 Updates since v2.29
5 -------------------
6
7 UI, Workflows & Features
8
9 * Userdiff for PHP update.
10
11 * Userdiff for Rust update.
12
13 * Userdiff for CSS update.
14
15 * The command line completion script (in contrib/) learned that "git
16 stash show" takes the options "git diff" takes.
17
18 * "git worktree list" now shows if each worktree is locked. This
19 possibly may open us to show other kinds of states in the future.
20
21 * "git maintenance", an extended big brother of "git gc", continues
22 to evolve.
23
24 * "git push --force-with-lease[=<ref>]" can easily be misused to lose
25 commits unless the user takes good care of their own "git fetch".
26 A new option "--force-if-includes" attempts to ensure that what is
27 being force-pushed was created after examining the commit at the
28 tip of the remote ref that is about to be force-replaced.
29
30 * "git clone" learned clone.defaultremotename configuration variable
31 to customize what nickname to use to call the remote the repository
32 was cloned from.
33
34 * "git checkout" learned to use checkout.guess configuration variable
35 and enable/disable its "--[no-]guess" option accordingly.
36
37 * "git resurrect" script (in contrib/) learned that the object names
38 may be longer than 40-hex depending on the hash function in use.
39
40 * "git diff A...B" learned "git diff --merge-base A B", which is a
41 longer short-hand to say the same thing.
42
43 * A sample 'push-to-checkout' hook, that performs the same as
44 what the built-in default action does, has been added.
45
46 * "git diff" family of commands learned the "-I<regex>" option to
47 ignore hunks whose changed lines all match the given pattern.
48
49 * The userdiff pattern learned to identify the function definition in
50 POSIX shells and bash.
51
52
53 Performance, Internal Implementation, Development Support etc.
54
55 * Use "git archive" more to produce the release tarball.
56
57 * GitHub Actions automated test improvement to skip tests on a tree
58 identical to what has already been tested.
59
60 * Test-coverage for running commit-graph task "git maintenance" has
61 been extended.
62
63 * Our test scripts can be told to run only individual pieces while
64 skipping others with the "--run=..." option; they were taught to
65 take a substring of test title, in addition to numbers, to name the
66 test pieces to run.
67
68 * Adjust tests so that they won't scream when the default initial
69 branch name is changed to 'main'.
70
71
72 Fixes since v2.29
73 -----------------
74
75 * In 2.29, "--committer-date-is-author-date" option of "rebase" and
76 "am" subcommands lost the e-mail address by mistake, which has been
77 corrected.
78 (merge 5f35edd9d7 jk/committer-date-is-author-date-fix later to maint).
79
80 * "git checkout -p A...B [-- <path>]" did not work, even though the
81 same command without "-p" correctly used the merge-base between
82 commits A and B.
83 (merge 35166b1fb5 dl/checkout-p-merge-base later to maint).
84
85 * The side-band status report can be sent at the same time as the
86 primary payload multiplexed, but the demultiplexer on the receiving
87 end incorrectly split a single status report into two, which has
88 been corrected.
89 (merge 712b0377db js/avoid-split-sideband-message later to maint).
90
91 * "git fast-import" wasted a lot of memory when many marks were in use.
92 (merge 3f018ec716 jk/fast-import-marks-alloc-fix later to maint).
93
94 * A test helper "test_cmp A B" was taught to diagnose missing files A
95 or B as a bug in test, but some tests legitimately wanted to notice
96 a failure to even create file B as an error, in addition to leaving
97 the expected result in it, and were misdiagnosed as a bug. This
98 has been corrected.
99 (merge 262d5ad5a5 es/test-cmp-typocatcher later to maint).
100
101 * When "git commit-graph" detects the same commit recorded more than
102 once while it is merging the layers, it used to die. The code now
103 ignores all but one of them and continues.
104 (merge 85102ac71b ds/commit-graph-merging-fix later to maint).
105
106 * The meaning of a Signed-off-by trailer can vary from project to
107 project; this and also what it means to this project has been
108 clarified in the documentation.
109 (merge 3abd4a67d9 bk/sob-dco later to maint).
110
111 * "git credential' didn't honor the core.askPass configuration
112 variable (among other things), which has been corrected.
113 (merge 567ad2c0f9 tk/credential-config later to maint).
114
115 * Dev support to catch a tentative definition of a variable in our C
116 code as an error.
117 (merge 5539183622 jk/no-common later to maint).
118
119 * "git rebase --rebase-merges" did not correctly pass --gpg-sign
120 command line option to underlying "git merge" when replaying a merge
121 using non-default merge strategy or when replaying an octopus merge
122 (because replaying a two-head merge with the default strategy was
123 done in a separate codepath, the problem did not trigger for most
124 users), which has been corrected.
125 (merge 43ad4f2eca sc/sequencer-gpg-octopus later to maint).
126
127 * "git apply -R" did not handle patches that touch the same path
128 twice correctly, which has been corrected. This is most relevant
129 in a patch that changes a path from a regular file to a symbolic
130 link (and vice versa).
131 (merge b0f266de11 jt/apply-reverse-twice later to maint).
132
133 * A recent oid->hash conversion missed one spot, breaking "git svn".
134 (merge 03bb366de4 bc/svn-hash-oid-fix later to maint).
135
136 * Other code cleanup, docfix, build fix, etc.
137 (merge 3e0a5dc9af cc/doc-filter-branch-typofix later to maint).
138 (merge 32c83afc2c cw/ci-ghwf-check-ws-errors later to maint).
139 (merge 5eb2ed691b rs/tighten-callers-of-deref-tag later to maint).
140 (merge 6db29ab213 jk/fast-import-marks-cleanup later to maint).
141 (merge e5cf6d3df4 nk/dir-c-comment-update later to maint).
142 (merge 5710dcce74 jk/report-fn-typedef later to maint).
143 (merge 9a82db1056 en/sequencer-rollback-lock-cleanup later to maint).
144 (merge 4e1bee9a99 js/t7006-cleanup later to maint).
145 (merge f5bcde6c58 es/tutorial-mention-asciidoc-early later to maint).