Skip to content

Commit a17177c

Browse files
committed
Merge branch 'master' of git://git.kernel.org/pub/scm/git/git
* 'master' of git://git.kernel.org/pub/scm/git/git: (66 commits) Git 2.22-rc2 ...
2 parents ea8a8d0 + 874dd41 commit a17177c

File tree

95 files changed

+1002
-554
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+1002
-554
lines changed

Documentation/RelNotes/2.22.0.txt

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,18 @@ UI, Workflows & Features
9999
repositories now; also the pathname hash-cache is created by
100100
default to avoid making crappy deltas when repacking.
101101

102+
* "git branch new A...B" and "git checkout -b new A...B" have been
103+
taught that in their contexts, the notation A...B means "the merge
104+
base between these two commits", just like "git checkout A...B"
105+
detaches HEAD at that commit.
106+
107+
* Update "git difftool" and "git mergetool" so that the combinations
108+
of {diff,merge}.{tool,guitool} configuration variables serve as
109+
fallback settings of each other in a sensible order.
110+
111+
* The "--dir-diff" mode of "git difftool" is not useful in "--no-index"
112+
mode; they are now explicitly marked as mutually incompatible.
113+
102114

103115
Performance, Internal Implementation, Development Support etc.
104116

@@ -178,6 +190,27 @@ Performance, Internal Implementation, Development Support etc.
178190
* The internal implementation of "git rebase -i" has been updated to
179191
avoid forking a separate "rebase--interactive" process.
180192

193+
* Allow DEP and ASLR for Windows build to for security hardening.
194+
195+
* Performance test framework has been broken and measured the version
196+
of Git that happens to be on $PATH, not the specified one to
197+
measure, for a while, which has been corrected.
198+
199+
* Optionally "make coccicheck" can feed multiple source files to
200+
spatch, gaining performance while spending more memory.
201+
202+
* Attempt to use an abbreviated option in "git clone --recurs" is
203+
responded by a request to disambiguate between --recursive and
204+
--recurse-submodules, which is bad because these two are synonyms.
205+
The parse-options API has been extended to define such synonyms
206+
more easily and not produce an unnecessary failure.
207+
208+
* A pair of private functions in http.c that had names similar to
209+
fread/fwrite did not return the number of elements, which was found
210+
to be confusing.
211+
212+
* Update collision-detecting SHA-1 code to build properly on HP-UX.
213+
181214

182215
Fixes since v2.21
183216
-----------------
@@ -474,6 +507,41 @@ Fixes since v2.21
474507
files used by these commands in such a situation.
475508
(merge 4a72486de9 pw/clean-sequencer-state-upon-final-commit later to maint).
476509

510+
* On a filesystem like HFS+, the names of the refs stored as filesystem
511+
entities may become different from what the end-user expects, just
512+
like files in the working tree get "renamed". Work around the
513+
mismatch by paying attention to the core.precomposeUnicode
514+
configuration.
515+
(merge 8e712ef6fc en/unicode-in-refnames later to maint).
516+
517+
* The code to generate the multi-pack idx file was not prepared to
518+
see too many packfiles and ran out of open file descriptor, which
519+
has been corrected.
520+
521+
* To run tests for Git SVN, our scripts for CI used to install the
522+
git-svn package (in the hope that it would bring in the right
523+
dependencies). This has been updated to install the more direct
524+
dependency, namely, libsvn-perl.
525+
(merge db864306cf sg/ci-libsvn-perl later to maint).
526+
527+
* "git cvsexportcommit" running on msys did not expect cvsnt showed
528+
"cvs status" output with CRLF line endings.
529+
530+
* The fsmonitor interface got out of sync after the in-core index
531+
file gets discarded, which has been corrected.
532+
(merge 398a3b0899 js/fsmonitor-refresh-after-discarding-index later to maint).
533+
534+
* "git status" did not know that the "label" instruction in the
535+
todo-list "rebase -i -r" uses should not be shown as a hex object
536+
name.
537+
538+
* A prerequiste check in the test suite to see if a working jgit is
539+
available was made more robust.
540+
(merge abd0f28983 tz/test-lib-check-working-jgit later to maint).
541+
542+
* The codepath to parse :<path> that obtains the object name for an
543+
indexed object has been made more robust.
544+
477545
* Code cleanup, docfix, build fix, etc.
478546
(merge 11f470aee7 jc/test-yes-doc later to maint).
479547
(merge 90503a240b js/doc-symref-in-proto-v1 later to maint).
@@ -510,3 +578,13 @@ Fixes since v2.21
510578
(merge d8083e4180 km/t3000-retitle later to maint).
511579
(merge 9e4cbccbd7 tz/git-svn-doc-markup-fix later to maint).
512580
(merge da9ca955a7 jk/ls-files-doc-markup-fix later to maint).
581+
(merge 6804ba3a58 cw/diff-highlight later to maint).
582+
(merge 1a8787144d nd/submodule-helper-incomplete-line-fix later to maint).
583+
(merge d9ef573837 jk/apache-lsan later to maint).
584+
(merge c871fbee2b js/t6500-use-windows-pid-on-mingw later to maint).
585+
(merge ce4c7bfc90 bl/t4253-exit-code-from-format-patch later to maint).
586+
(merge 397a46db78 js/t5580-unc-alternate-test later to maint).
587+
(merge d4907720a2 cm/notes-comment-fix later to maint).
588+
(merge 9dde06de13 cb/http-push-null-in-message-fix later to maint).
589+
(merge 4c785c0edc js/rebase-config-bitfix later to maint).
590+
(merge 8e9fe16c87 es/doc-gitsubmodules-markup later to maint).

Documentation/config/stash.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
stash.useBuiltin::
2+
Set to `false` to use the legacy shell script implementation of
3+
linkgit:git-stash[1]. Is `true` by default, which means use
4+
the built-in rewrite of it in C.
5+
+
6+
The C rewrite is first included with Git version 2.22 (and Git for Windows
7+
version 2.19). This option serves an an escape hatch to re-enable the
8+
legacy version in case any bugs are found in the rewrite. This option and
9+
the shell script version of linkgit:git-stash[1] will be removed in some
10+
future release.
11+
+
12+
If you find some reason to set this option to `false`, other than
13+
one-off testing, you should report the behavior difference as a bug in
14+
Git (see https://git-scm.com/community for details).
15+
116
stash.showPatch::
217
If this is set to true, the `git stash show` command without an
318
option will show the stash entry in patch form. Defaults to false.

Documentation/config/trace2.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,53 +4,53 @@ command line arguments are not respected.
44

55
trace2.normalTarget::
66
This variable controls the normal target destination.
7-
It may be overridden by the `GIT_TR2` environment variable.
7+
It may be overridden by the `GIT_TRACE2` environment variable.
88
The following table shows possible values.
99

1010
trace2.perfTarget::
1111
This variable controls the performance target destination.
12-
It may be overridden by the `GIT_TR2_PERF` environment variable.
12+
It may be overridden by the `GIT_TRACE2_PERF` environment variable.
1313
The following table shows possible values.
1414

1515
trace2.eventTarget::
1616
This variable controls the event target destination.
17-
It may be overridden by the `GIT_TR2_EVENT` environment variable.
17+
It may be overridden by the `GIT_TRACE2_EVENT` environment variable.
1818
The following table shows possible values.
1919
+
2020
include::../trace2-target-values.txt[]
2121

2222
trace2.normalBrief::
2323
Boolean. When true `time`, `filename`, and `line` fields are
2424
omitted from normal output. May be overridden by the
25-
`GIT_TR2_BRIEF` environment variable. Defaults to false.
25+
`GIT_TRACE2_BRIEF` environment variable. Defaults to false.
2626

2727
trace2.perfBrief::
2828
Boolean. When true `time`, `filename`, and `line` fields are
2929
omitted from PERF output. May be overridden by the
30-
`GIT_TR2_PERF_BRIEF` environment variable. Defaults to false.
30+
`GIT_TRACE2_PERF_BRIEF` environment variable. Defaults to false.
3131

3232
trace2.eventBrief::
3333
Boolean. When true `time`, `filename`, and `line` fields are
3434
omitted from event output. May be overridden by the
35-
`GIT_TR2_EVENT_BRIEF` environment variable. Defaults to false.
35+
`GIT_TRACE2_EVENT_BRIEF` environment variable. Defaults to false.
3636

3737
trace2.eventNesting::
3838
Integer. Specifies desired depth of nested regions in the
3939
event output. Regions deeper than this value will be
40-
omitted. May be overridden by the `GIT_TR2_EVENT_NESTING`
40+
omitted. May be overridden by the `GIT_TRACE2_EVENT_NESTING`
4141
environment variable. Defaults to 2.
4242

4343
trace2.configParams::
4444
A comma-separated list of patterns of "important" config
4545
settings that should be recorded in the trace2 output.
4646
For example, `core.*,remote.*.url` would cause the trace2
4747
output to contain events listing each configured remote.
48-
May be overridden by the `GIT_TR2_CONFIG_PARAMS` environment
48+
May be overridden by the `GIT_TRACE2_CONFIG_PARAMS` environment
4949
variable. Unset by default.
5050

5151
trace2.destinationDebug::
5252
Boolean. When true Git will print error messages when a
5353
trace target destination cannot be opened for writing.
5454
By default, these errors are suppressed and tracing is
5555
silently disabled. May be overridden by the
56-
`GIT_TR2_DST_DEBUG` environment variable.
56+
`GIT_TRACE2_DST_DEBUG` environment variable.

Documentation/git-branch.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ argument is missing it defaults to `HEAD` (i.e. the tip of the current
4545
branch).
4646

4747
The command's second form creates a new branch head named <branchname>
48-
which points to the current `HEAD`, or <start-point> if given.
48+
which points to the current `HEAD`, or <start-point> if given. As a
49+
special case, for <start-point>, you may use `"A...B"` as a shortcut for
50+
the merge base of `A` and `B` if there is exactly one merge base. You
51+
can leave out at most one of `A` and `B`, in which case it defaults to
52+
`HEAD`.
4953

5054
Note that this will create the new branch, but it will not switch the
5155
working tree to it; use "git checkout <newbranch>" to switch to the

Documentation/git-checkout.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,10 @@ leave out at most one of `A` and `B`, in which case it defaults to `HEAD`.
313313
<start_point>::
314314
The name of a commit at which to start the new branch; see
315315
linkgit:git-branch[1] for details. Defaults to HEAD.
316+
+
317+
As a special case, you may use `"A...B"` as a shortcut for the
318+
merge base of `A` and `B` if there is exactly one merge base. You can
319+
leave out at most one of `A` and `B`, in which case it defaults to `HEAD`.
316320

317321
<tree-ish>::
318322
Tree to checkout from (when paths are given). If not specified,

Documentation/git-difftool.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ instead. `--no-symlinks` is the default on Windows.
9090
When 'git-difftool' is invoked with the `-g` or `--gui` option
9191
the default diff tool will be read from the configured
9292
`diff.guitool` variable instead of `diff.tool`. The `--no-gui`
93-
option can be used to override this setting.
93+
option can be used to override this setting. If `diff.guitool`
94+
is not set, we will fallback in the order of `merge.guitool`,
95+
`diff.tool`, `merge.tool` until a tool is found.
9496

9597
--[no-]trust-exit-code::
9698
'git-difftool' invokes a diff tool individually on each file.

Documentation/git-mergetool--lib.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ to define the operation mode for the functions listed below.
2828
FUNCTIONS
2929
---------
3030
get_merge_tool::
31-
returns a merge tool.
31+
returns a merge tool. the return code is 1 if we returned a guessed
32+
merge tool, else 0. '$GIT_MERGETOOL_GUI' may be set to 'true' to
33+
search for the appropriate guitool.
3234

3335
get_merge_tool_cmd::
3436
returns the custom command for a merge tool.

Documentation/git-mergetool.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ success of the resolution after the custom tool has exited.
8383
--gui::
8484
When 'git-mergetool' is invoked with the `-g` or `--gui` option
8585
the default merge tool will be read from the configured
86-
`merge.guitool` variable instead of `merge.tool`.
86+
`merge.guitool` variable instead of `merge.tool`. If
87+
`merge.guitool` is not set, we will fallback to the tool
88+
configured under `merge.tool`.
8789

8890
--no-gui::
8991
This overrides a previous `-g` or `--gui` setting and reads the

Documentation/git-pull.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,9 @@ When set to `merges`, rebase using `git rebase --rebase-merges` so that
112112
the local merge commits are included in the rebase (see
113113
linkgit:git-rebase[1] for details).
114114
+
115-
When set to preserve, rebase with the `--preserve-merges` option passed
116-
to `git rebase` so that locally created merge commits will not be flattened.
115+
When set to `preserve` (deprecated in favor of `merges`), rebase with the
116+
`--preserve-merges` option passed to `git rebase` so that locally created
117+
merge commits will not be flattened.
117118
+
118119
When false, merge the current branch into the upstream branch.
119120
+

Documentation/git-rebase.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,8 @@ $ git rebase -i HEAD~5
675675

676676
And move the first patch to the end of the list.
677677

678-
You might want to preserve merges, if you have a history like this:
678+
You might want to recreate merge commits, e.g. if you have a history
679+
like this:
679680

680681
------------------
681682
X
@@ -689,7 +690,7 @@ Suppose you want to rebase the side branch starting at "A" to "Q". Make
689690
sure that the current HEAD is "B", and call
690691

691692
-----------------------------
692-
$ git rebase -i -p --onto Q O
693+
$ git rebase -i -r --onto Q O
693694
-----------------------------
694695

695696
Reordering and editing commits usually creates untested intermediate

0 commit comments

Comments
 (0)