]> git.ipfire.org Git - thirdparty/git.git/log
thirdparty/git.git
3 years agodiff: enable and test the sparse index
Lessley Dennington [Mon, 6 Dec 2021 15:56:00 +0000 (15:56 +0000)] 
diff: enable and test the sparse index

Enable the sparse index within the 'git diff' command. Its implementation
already safely integrates with the sparse index because it shares code
with the 'git status' and 'git checkout' commands that were already
integrated.  For more details see:

d76723ee53 (status: use sparse-index throughout, 2021-07-14)
1ba5f45132 (checkout: stop expanding sparse indexes, 2021-06-29)

The most interesting thing to do is to add tests that verify that 'git
diff' behaves correctly when the sparse index is enabled. These cases are:

1. The index is not expanded for 'diff' and 'diff --staged'
2. 'diff' and 'diff --staged' behave the same in full checkout, sparse
checkout, and sparse index repositories in the following partially-staged
scenarios (i.e. the index, HEAD, and working directory differ at a given
path):
    1. Path is within sparse-checkout cone
    2. Path is outside sparse-checkout cone
    3. A merge conflict exists for paths outside sparse-checkout cone

The `p2000` tests demonstrate a ~44% execution time reduction for 'git
diff' and a ~86% execution time reduction for 'git diff --staged' using a
sparse index:

Test                                      before  after
-------------------------------------------------------------
2000.30: git diff (full-v3)               0.33    0.34 +3.0%
2000.31: git diff (full-v4)               0.33    0.35 +6.1%
2000.32: git diff (sparse-v3)             0.53    0.31 -41.5%
2000.33: git diff (sparse-v4)             0.54    0.29 -46.3%
2000.34: git diff --cached (full-v3)      0.07    0.07 +0.0%
2000.35: git diff --cached (full-v4)      0.07    0.08 +14.3%
2000.36: git diff --cached (sparse-v3)    0.28    0.04 -85.7%
2000.37: git diff --cached (sparse-v4)    0.23    0.03 -87.0%

Co-authored-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Lessley Dennington <lessleydennington@gmail.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agodiff: replace --staged with --cached in t1092 tests
Lessley Dennington [Mon, 6 Dec 2021 15:55:59 +0000 (15:55 +0000)] 
diff: replace --staged with --cached in t1092 tests

Replace uses of the synonym --staged in t1092 tests with --cached (which
is the real and preferred option). This will allow consistency in the new
tests to be added with the upcoming change to enable the sparse index for
diff.

Signed-off-by: Lessley Dennington <lessleydennington@gmail.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorepo-settings: prepare_repo_settings only in git repos
Lessley Dennington [Mon, 6 Dec 2021 15:55:58 +0000 (15:55 +0000)] 
repo-settings: prepare_repo_settings only in git repos

Check whether git directory exists before adding any repo settings. If it
does not exist, BUG with the message that one cannot add settings for an
uninitialized repository. If it does exist, proceed with adding repo
settings.

Signed-off-by: Lessley Dennington <lessleydennington@gmail.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agotest-read-cache: set up repo after git directory
Lessley Dennington [Mon, 6 Dec 2021 15:55:57 +0000 (15:55 +0000)] 
test-read-cache: set up repo after git directory

Move repo setup to occur after git directory is set up. This will protect
against test failures in the upcoming change to BUG in
prepare_repo_settings if no git directory exists.

Signed-off-by: Lessley Dennington <lessleydennington@gmail.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agocommit-graph: return if there is no git directory
Lessley Dennington [Mon, 6 Dec 2021 15:55:56 +0000 (15:55 +0000)] 
commit-graph: return if there is no git directory

Return early if git directory does not exist. This will protect against
test failures in the upcoming change to BUG in prepare_repo_settings if no
git directory exists.

Signed-off-by: Lessley Dennington <lessleydennington@gmail.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agogit: ensure correct git directory setup with -h
Lessley Dennington [Mon, 6 Dec 2021 15:55:55 +0000 (15:55 +0000)] 
git: ensure correct git directory setup with -h

Ensure correct git directory setup when -h is passed with commands. This
specifically applies to repos with special help text configuration
variables and to commands run with -h outside a repository. This
will also protect against test failures in the upcoming change to BUG in
prepare_repo_settings if no git directory exists.

Note: this diff is better seen when ignoring whitespace changes.

Co-authored-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Lessley Dennington <lessleydennington@gmail.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'vd/sparse-reset' into ld/sparse-diff-blame
Junio C Hamano [Mon, 29 Nov 2021 20:53:56 +0000 (12:53 -0800)] 
Merge branch 'vd/sparse-reset' into ld/sparse-diff-blame

* vd/sparse-reset:
  unpack-trees: improve performance of next_cache_entry
  reset: make --mixed sparse-aware
  reset: make sparse-aware (except --mixed)
  reset: integrate with sparse index
  reset: expand test coverage for sparse checkouts
  sparse-index: update command for expand/collapse test
  reset: preserve skip-worktree bit in mixed reset
  reset: rename is_missing to !is_in_reset_tree

3 years agounpack-trees: improve performance of next_cache_entry
Victoria Dye [Mon, 29 Nov 2021 15:52:43 +0000 (15:52 +0000)] 
unpack-trees: improve performance of next_cache_entry

To find the first non-unpacked cache entry, `next_cache_entry` iterates
through index, starting at `cache_bottom`. The performance of this in full
indexes is helped by `cache_bottom` advancing with each invocation of
`mark_ce_used` (called by `unpack_index_entry`). However, the presence of
sparse directories can prevent the `cache_bottom` from advancing in a sparse
index case, effectively forcing `next_cache_entry` to search from the
beginning of the index each time it is called.

The `cache_bottom` must be preserved for the sparse index (see 17a1bb570b
(unpack-trees: preserve cache_bottom, 2021-07-14)). Therefore, to retain the
benefit `cache_bottom` provides in non-sparse index cases, a separate `hint`
position indicates the first position `next_cache_entry` should search,
updated each execution with a new position.

Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoreset: make --mixed sparse-aware
Victoria Dye [Mon, 29 Nov 2021 15:52:42 +0000 (15:52 +0000)] 
reset: make --mixed sparse-aware

Remove the `ensure_full_index` guard on `read_from_tree` and update `git
reset --mixed` to ensure it can use sparse directory index entries wherever
possible. Sparse directory entries are reset using `diff_tree_oid`, which
requires `change` and `add_remove` functions to process the internal
contents of the sparse directory. The `recursive` diff option handles cases
in which `reset --mixed` must diff/merge files that are nested multiple
levels deep in a sparse directory.

The use of pathspecs with `git reset --mixed` introduces scenarios in which
internal contents of sparse directories may be matched by the pathspec. In
order to reset *all* files in the repo that may match the pathspec, the
following conditions on the pathspec require index expansion before
performing the reset:

* "magic" pathspecs
* wildcard pathspecs that do not match only in-cone files or entire sparse
  directories
* literal pathspecs matching something outside the sparse checkout
  definition

Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoreset: make sparse-aware (except --mixed)
Victoria Dye [Mon, 29 Nov 2021 15:52:41 +0000 (15:52 +0000)] 
reset: make sparse-aware (except --mixed)

Remove `ensure_full_index` guard on `prime_cache_tree` and update
`prime_cache_tree_rec` to correctly reconstruct sparse directory entries in
the cache tree. While processing a tree's entries, `prime_cache_tree_rec`
must determine whether a directory entry is sparse or not by searching for
it in the index (*without* expanding the index). If a matching sparse
directory index entry is found, no subtrees are added to the cache tree
entry and the entry count is set to 1 (representing the sparse directory
itself). Otherwise, the tree is assumed to not be sparse and its subtrees
are recursively added to the cache tree.

Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoreset: integrate with sparse index
Victoria Dye [Mon, 29 Nov 2021 15:52:40 +0000 (15:52 +0000)] 
reset: integrate with sparse index

Disable `command_requires_full_index` repo setting and add
`ensure_full_index` guards around code paths that cannot yet use sparse
directory index entries. `reset --soft` does not modify the index, so no
compatibility changes are needed for it to function without expanding the
index. For all other reset modes (`--mixed`, `--hard`, `--keep`, `--merge`),
the full index is expanded to prevent cache tree corruption and invalid
variable accesses.

Additionally, the `read_cache()` check verifying an uncorrupted index is
moved after argument parsing and preparing the repo settings. The index is
not used by the preceding argument handling, but `read_cache()` must be run
*after* enabling sparse index for the command (so that the index is not
expanded unnecessarily) and *before* using the index for reset (so that it
is verified as uncorrupted).

Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoreset: expand test coverage for sparse checkouts
Victoria Dye [Mon, 29 Nov 2021 15:52:39 +0000 (15:52 +0000)] 
reset: expand test coverage for sparse checkouts

Add new tests for `--merge` and `--keep` modes, as well as mixed reset with
pathspecs. New performance test cases exercise various execution paths for
`reset`.

Co-authored-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agosparse-index: update command for expand/collapse test
Victoria Dye [Wed, 27 Oct 2021 14:39:18 +0000 (14:39 +0000)] 
sparse-index: update command for expand/collapse test

In anticipation of `git reset --hard` being able to use the sparse index
without expanding it, replace the command in `sparse-index is expanded and
converted back` with `git reset -- folder1/a`. This command will need to
expand the index to work properly, even after integrating the rest of
`reset` with sparse index.

Helped-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoreset: preserve skip-worktree bit in mixed reset
Victoria Dye [Wed, 27 Oct 2021 14:39:17 +0000 (14:39 +0000)] 
reset: preserve skip-worktree bit in mixed reset

Change `update_index_from_diff` to set `skip-worktree` when applicable for
new index entries. When `git reset --mixed <tree-ish>` is run, entries in
the index with differences between the pre-reset HEAD and reset <tree-ish>
are identified and handled with `update_index_from_diff`. For each file, a
new cache entry in inserted into the index, created from the <tree-ish> side
of the reset (without changing the working tree). However, the newly-created
entry must have `skip-worktree` explicitly set in either of the following
scenarios:

1. the file is in the current index and has `skip-worktree` set
2. the file is not in the current index but is outside of a defined sparse
   checkout definition

Not setting the `skip-worktree` bit leads to likely-undesirable results for
a user. It causes `skip-worktree` settings to disappear on the
"diff"-containing files (but *only* the diff-containing files), leading to
those files now showing modifications in `git status`. For example, when
running `git reset --mixed` in a sparse checkout, some file entries outside
of sparse checkout could show up as deleted, despite the user never deleting
anything (and not wanting them on-disk anyway).

Additionally, add a test to `t7102` to ensure `skip-worktree` is preserved
in a basic `git reset --mixed` scenario and update a failure-documenting
test from 19a0acc (t1092: test interesting sparse-checkout scenarios,
2021-01-23) with new expected behavior.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoThirteenth batch
Junio C Hamano [Thu, 14 Oct 2021 16:55:16 +0000 (09:55 -0700)] 
Thirteenth batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ja/doc-status-types-and-copies'
Junio C Hamano [Wed, 13 Oct 2021 22:15:58 +0000 (15:15 -0700)] 
Merge branch 'ja/doc-status-types-and-copies'

A few kinds of changes "git status" can show were not documented.

* ja/doc-status-types-and-copies:
  Documentation/git-status: mention how to detect copies
  Documentation/git-status: document porcelain status T (typechange)
  Documentation/diff-format: state in which cases porcelain status is T
  Documentation/git-status: remove impossible porcelain status DR and DC

3 years agoMerge branch 'ab/make-sparse-for-real'
Junio C Hamano [Wed, 13 Oct 2021 22:15:58 +0000 (15:15 -0700)] 
Merge branch 'ab/make-sparse-for-real'

Prevent "make sparse" from running for the source files that
haven't been modified.

* ab/make-sparse-for-real:
  Makefile: make the "sparse" target non-.PHONY

3 years agoMerge branch 'ab/align-parse-options-help'
Junio C Hamano [Wed, 13 Oct 2021 22:15:58 +0000 (15:15 -0700)] 
Merge branch 'ab/align-parse-options-help'

When "git cmd -h" shows more than one line of usage text (e.g.
the cmd subcommand may take sub-sub-command), parse-options API
learned to align these lines, even across i18n/l10n.

* ab/align-parse-options-help:
  parse-options: properly align continued usage output
  git rev-parse --parseopt tests: add more usagestr tests
  send-pack: properly use parse_options() API for usage string
  parse-options API users: align usage output in C-strings

3 years agoMerge branch 'ab/help-config-vars'
Junio C Hamano [Wed, 13 Oct 2021 22:15:58 +0000 (15:15 -0700)] 
Merge branch 'ab/help-config-vars'

Teach "git help -c" into helping the command line completion of
configuration variables.

* ab/help-config-vars:
  help: move column config discovery to help.c library
  help / completion: make "git help" do the hard work
  help tests: test --config-for-completion option & output
  help: simplify by moving to OPT_CMDMODE()
  help: correct logic error in combining --all and --guides
  help: correct logic error in combining --all and --config
  help tests: add test for --config output
  help: correct usage & behavior of "git help --guides"
  help: correct the usage string in -h and documentation

3 years agoMerge branch 'jh/builtin-fsmonitor-part1'
Junio C Hamano [Wed, 13 Oct 2021 22:15:57 +0000 (15:15 -0700)] 
Merge branch 'jh/builtin-fsmonitor-part1'

Built-in fsmonitor (part 1).

* jh/builtin-fsmonitor-part1:
  t/helper/simple-ipc: convert test-simple-ipc to use start_bg_command
  run-command: create start_bg_command
  simple-ipc/ipc-win32: add Windows ACL to named pipe
  simple-ipc/ipc-win32: add trace2 debugging
  simple-ipc: move definition of ipc_active_state outside of ifdef
  simple-ipc: preparations for supporting binary messages.
  trace2: add trace2_child_ready() to report on background children

3 years agoMerge branch 'ab/config-based-hooks-1'
Junio C Hamano [Wed, 13 Oct 2021 22:15:57 +0000 (15:15 -0700)] 
Merge branch 'ab/config-based-hooks-1'

Mostly preliminary clean-up in the hook API.

* ab/config-based-hooks-1:
  hook-list.h: add a generated list of hooks, like config-list.h
  hook.c users: use "hook_exists()" instead of "find_hook()"
  hook.c: add a hook_exists() wrapper and use it in bugreport.c
  hook.[ch]: move find_hook() from run-command.c to hook.c
  Makefile: remove an out-of-date comment
  Makefile: don't perform "mv $@+ $@" dance for $(GENERATED_H)
  Makefile: stop hardcoding {command,config}-list.h
  Makefile: mark "check" target as .PHONY

3 years agoMerge branch 'ab/lib-subtest'
Junio C Hamano [Wed, 13 Oct 2021 22:15:57 +0000 (15:15 -0700)] 
Merge branch 'ab/lib-subtest'

Updates to the tests in t0000 to test the test framework.

* ab/lib-subtest:
  test-lib tests: get rid of copy/pasted mock test code
  test-lib tests: assert 1 exit code, not non-zero
  test-lib tests: refactor common part of check_sub_test_lib_test*()
  test-lib tests: avoid subshell for "test_cmp" for readability
  test-lib tests: don't provide a description for the sub-tests
  test-lib tests: split up "write and run" into two functions
  test-lib tests: move "run_sub_test" to a new lib-subtest.sh

3 years agoMerge branch 'en/removing-untracked-fixes'
Junio C Hamano [Wed, 13 Oct 2021 22:15:57 +0000 (15:15 -0700)] 
Merge branch 'en/removing-untracked-fixes'

Various fixes in code paths that move untracked files away to make room.

* en/removing-untracked-fixes:
  Documentation: call out commands that nuke untracked files/directories
  Comment important codepaths regarding nuking untracked files/dirs
  unpack-trees: avoid nuking untracked dir in way of locally deleted file
  unpack-trees: avoid nuking untracked dir in way of unmerged file
  Change unpack_trees' 'reset' flag into an enum
  Remove ignored files by default when they are in the way
  unpack-trees: make dir an internal-only struct
  unpack-trees: introduce preserve_ignored to unpack_trees_options
  read-tree, merge-recursive: overwrite ignored files by default
  checkout, read-tree: fix leak of unpack_trees_options.dir
  t2500: add various tests for nuking untracked files

3 years agoMerge branch 'mt/grep-submodule-textconv'
Junio C Hamano [Wed, 13 Oct 2021 22:15:56 +0000 (15:15 -0700)] 
Merge branch 'mt/grep-submodule-textconv'

"git grep --recurse-submodules" takes trees and blobs from the
submodule repository, but the textconv settings when processing a
blob from the submodule is not taken from the submodule repository.
A test is added to demonstrate the issue, without fixing it.

* mt/grep-submodule-textconv:
  grep: demonstrate bug with textconv attributes and submodules

3 years agoMerge branch 'ds/add-rm-with-sparse-index'
Junio C Hamano [Wed, 13 Oct 2021 22:15:56 +0000 (15:15 -0700)] 
Merge branch 'ds/add-rm-with-sparse-index'

"git add", "git mv", and "git rm" have been adjusted to avoid
updating paths outside of the sparse-checkout definition unless
the user specifies a "--sparse" option.

* ds/add-rm-with-sparse-index:
  advice: update message to suggest '--sparse'
  mv: refuse to move sparse paths
  rm: skip sparse paths with missing SKIP_WORKTREE
  rm: add --sparse option
  add: update --renormalize to skip sparse paths
  add: update --chmod to skip sparse paths
  add: implement the --sparse option
  add: skip tracked paths outside sparse-checkout cone
  add: fail when adding an untracked sparse file
  dir: fix pattern matching on dirs
  dir: select directories correctly
  t1092: behavior for adding sparse files
  t3705: test that 'sparse_entry' is unstaged

3 years agoSync with Git 2.33.1
Junio C Hamano [Tue, 12 Oct 2021 20:59:32 +0000 (13:59 -0700)] 
Sync with Git 2.33.1

3 years agoGit 2.33.1 v2.33.1
Junio C Hamano [Tue, 12 Oct 2021 20:51:59 +0000 (13:51 -0700)] 
Git 2.33.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ah/connect-parse-feature-v0-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:49 +0000 (13:51 -0700)] 
Merge branch 'ah/connect-parse-feature-v0-fix' into maint

Protocol v0 clients can get stuck parsing a malformed feature line.

* ah/connect-parse-feature-v0-fix:
  connect: also update offset for features without values

3 years agoMerge branch 'ab/make-clean-depend-dirs' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:49 +0000 (13:51 -0700)] 
Merge branch 'ab/make-clean-depend-dirs' into maint

"make clean" has been updated to remove leftover .depend/
directories, even when it is not told to use them to compute header
dependencies.

* ab/make-clean-depend-dirs:
  Makefile: clean .depend dirs under COMPUTE_HEADER_DEPENDENCIES != yes

3 years agoMerge branch 'jk/http-redact-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:48 +0000 (13:51 -0700)] 
Merge branch 'jk/http-redact-fix' into maint

Sensitive data in the HTTP trace were supposed to be redacted, but
we failed to do so in HTTP/2 requests.

* jk/http-redact-fix:
  http: match headers case-insensitively when redacting

3 years agoMerge branch 'da/difftool-dir-diff-symlink-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:48 +0000 (13:51 -0700)] 
Merge branch 'da/difftool-dir-diff-symlink-fix' into maint

"git difftool --dir-diff" mishandled symbolic links.

* da/difftool-dir-diff-symlink-fix:
  difftool: fix symlink-file writing in dir-diff mode

3 years agoMerge branch 'cb/cvsserver' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:48 +0000 (13:51 -0700)] 
Merge branch 'cb/cvsserver' into maint

"git cvsserver" had a long-standing bug in its authentication code,
which has finally been corrected (it is unclear and is a separate
question if anybody is seriously using it, though).

* cb/cvsserver:
  Documentation: cleanup git-cvsserver
  git-cvsserver: protect against NULL in crypt(3)
  git-cvsserver: use crypt correctly to compare password hashes

3 years agoMerge branch 'jk/clone-unborn-head-in-bare' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:47 +0000 (13:51 -0700)] 
Merge branch 'jk/clone-unborn-head-in-bare' into maint

"git clone" from a repository whose HEAD is unborn into a bare
repository didn't follow the branch name the other side used, which
is corrected.

* jk/clone-unborn-head-in-bare:
  clone: handle unborn branch in bare repos

3 years agoMerge branch 'en/stash-df-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:47 +0000 (13:51 -0700)] 
Merge branch 'en/stash-df-fix' into maint

"git stash", where the tentative change involves changing a
directory to a file (or vice versa), was confused, which has been
corrected.

* en/stash-df-fix:
  stash: restore untracked files AFTER restoring tracked files
  stash: avoid feeding directories to update-index
  t3903: document a pair of directory/file bugs

3 years agoMerge branch 'jk/strvec-typefix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:47 +0000 (13:51 -0700)] 
Merge branch 'jk/strvec-typefix' into maint

Correct nr and alloc members of strvec struct to be of type size_t.

* jk/strvec-typefix:
  strvec: use size_t to store nr and alloc

3 years agoMerge branch 'en/am-abort-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:46 +0000 (13:51 -0700)] 
Merge branch 'en/am-abort-fix' into maint

When "git am --abort" fails to abort correctly, it still exited
with exit status of 0, which has been corrected.

* en/am-abort-fix:
  am: fix incorrect exit status on am fail to abort
  t4151: add a few am --abort tests
  git-am.txt: clarify --abort behavior

3 years agoMerge branch 'ps/update-ref-batch-flush' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:46 +0000 (13:51 -0700)] 
Merge branch 'ps/update-ref-batch-flush' into maint

"git update-ref --stdin" failed to flush its output as needed,
which potentially led the conversation to a deadlock.

* ps/update-ref-batch-flush:
  t1400: avoid SIGPIPE race condition on fifo
  update-ref: fix streaming of status updates

3 years agoMerge branch 'rs/no-mode-to-open-when-appending' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:46 +0000 (13:51 -0700)] 
Merge branch 'rs/no-mode-to-open-when-appending' into maint

The "mode" word is useless in a call to open(2) that does not
create a new file.  Such a call in the files backend of the ref
subsystem has been cleaned up.

* rs/no-mode-to-open-when-appending:
  refs/files-backend: remove unused open mode parameter

3 years agoMerge branch 'tb/pack-finalize-ordering' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:45 +0000 (13:51 -0700)] 
Merge branch 'tb/pack-finalize-ordering' into maint

The order in which various files that make up a single (conceptual)
packfile has been reevaluated and straightened up.  This matters in
correctness, as an incomplete set of files must not be shown to a
running Git.

* tb/pack-finalize-ordering:
  pack-objects: rename .idx files into place after .bitmap files
  pack-write: split up finish_tmp_packfile() function
  builtin/index-pack.c: move `.idx` files into place last
  index-pack: refactor renaming in final()
  builtin/repack.c: move `.idx` files into place last
  pack-write.c: rename `.idx` files after `*.rev`
  pack-write: refactor renaming in finish_tmp_packfile()
  bulk-checkin.c: store checksum directly
  pack.h: line-wrap the definition of finish_tmp_packfile()

3 years agoMerge branch 'rs/range-diff-avoid-segfault-with-I' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:45 +0000 (13:51 -0700)] 
Merge branch 'rs/range-diff-avoid-segfault-with-I' into maint

"git range-diff -I... <range> <range>" segfaulted, which has been
corrected.

* rs/range-diff-avoid-segfault-with-I:
  range-diff: avoid segfault with -I

3 years agoMerge branch 'ab/reverse-midx-optim' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:45 +0000 (13:51 -0700)] 
Merge branch 'ab/reverse-midx-optim' into maint

The code that optionally creates the *.rev reverse index file has
been optimized to avoid needless computation when it is not writing
the file out.

* ab/reverse-midx-optim:
  pack-write: skip *.rev work when not writing *.rev

3 years agoMerge branch 'jc/trivial-threeway-binary-merge' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:44 +0000 (13:51 -0700)] 
Merge branch 'jc/trivial-threeway-binary-merge' into maint

The "git apply -3" code path learned not to bother the lower level
merge machinery when the three-way merge can be trivially resolved
without the content level merge.

* jc/trivial-threeway-binary-merge:
  apply: resolve trivial merge without hitting ll-merge with "--3way"

3 years agoMerge branch 'ab/send-email-config-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:44 +0000 (13:51 -0700)] 
Merge branch 'ab/send-email-config-fix' into maint

Regression fix.

* ab/send-email-config-fix:
  send-email: fix a "first config key wins" regression in v2.33.0

3 years agoMerge branch 'so/diff-index-regression-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:44 +0000 (13:51 -0700)] 
Merge branch 'so/diff-index-regression-fix' into maint

Recent "diff -m" changes broke "gitk", which has been corrected.

* so/diff-index-regression-fix:
  diff-index: restore -c/--cc options handling

3 years agoMerge branch 'jk/log-warn-on-bogus-encoding' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:43 +0000 (13:51 -0700)] 
Merge branch 'jk/log-warn-on-bogus-encoding' into maint

Doc update plus improved error reporting.

* jk/log-warn-on-bogus-encoding:
  docs: use "character encoding" to refer to commit-object encoding
  logmsg_reencode(): warn when iconv() fails

3 years agoMerge branch 'tk/fast-export-anonymized-tag-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:43 +0000 (13:51 -0700)] 
Merge branch 'tk/fast-export-anonymized-tag-fix' into maint

The output from "git fast-export", when its anonymization feature
is in use, showed an annotated tag incorrectly.

* tk/fast-export-anonymized-tag-fix:
  fast-export: fix anonymized tag using original length

3 years agoMerge branch 'mh/send-email-reset-in-reply-to' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:43 +0000 (13:51 -0700)] 
Merge branch 'mh/send-email-reset-in-reply-to' into maint

Even when running "git send-email" without its own threaded
discussion support, a threading related header in one message is
carried over to the subsequent message to result in an unwanted
threading, which has been corrected.

* mh/send-email-reset-in-reply-to:
  send-email: avoid incorrect header propagation

3 years agoMerge branch 'sg/set-ceiling-during-tests' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:42 +0000 (13:51 -0700)] 
Merge branch 'sg/set-ceiling-during-tests' into maint

Buggy tests could damage repositories outside the throw-away test
area we created.  We now by default export GIT_CEILING_DIRECTORIES
to limit the damage from such a stray test.

* sg/set-ceiling-during-tests:
  test-lib: set GIT_CEILING_DIRECTORIES to protect the surrounding repository

3 years agoMerge branch 'jh/sparse-index-resize-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:42 +0000 (13:51 -0700)] 
Merge branch 'jh/sparse-index-resize-fix' into maint

The sparse-index support can corrupt the index structure by storing
a stale and/or uninitialized data, which has been corrected.

* jh/sparse-index-resize-fix:
  sparse-index: copy dir_hash in ensure_full_index()

3 years agoMerge branch 'ka/want-ref-in-namespace' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:42 +0000 (13:51 -0700)] 
Merge branch 'ka/want-ref-in-namespace' into maint

"git upload-pack" which runs on the other side of "git fetch"
forgot to take the ref namespaces into account when handling
want-ref requests.

* ka/want-ref-in-namespace:
  docs: clarify the interaction of transfer.hideRefs and namespaces
  upload-pack.c: treat want-ref relative to namespace
  t5730: introduce fetch command helper

3 years agoMerge branch 'sg/column-nl' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:41 +0000 (13:51 -0700)] 
Merge branch 'sg/column-nl' into maint

The parser for the "--nl" option of "git column" has been
corrected.

* sg/column-nl:
  column: fix parsing of the '--nl' option

3 years agoMerge branch 'cb/makefile-apple-clang' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:41 +0000 (13:51 -0700)] 
Merge branch 'cb/makefile-apple-clang' into maint

Build update for Apple clang.

* cb/makefile-apple-clang:
  build: catch clang that identifies itself as "$VENDOR clang"
  build: clang version may not be followed by extra words
  build: update detect-compiler for newer Xcode version

3 years agoMerge branch 'rs/branch-allow-deleting-dangling' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:41 +0000 (13:51 -0700)] 
Merge branch 'rs/branch-allow-deleting-dangling' into maint

"git branch -D <branch>" used to refuse to remove a broken branch
ref that points at a missing commit, which has been corrected.

* rs/branch-allow-deleting-dangling:
  branch: allow deleting dangling branches with --force

3 years agoMerge branch 'mt/quiet-with-delayed-checkout' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:40 +0000 (13:51 -0700)] 
Merge branch 'mt/quiet-with-delayed-checkout' into maint

The delayed checkout code path in "git checkout" etc. were chatty
even when --quiet and/or --no-progress options were given.

* mt/quiet-with-delayed-checkout:
  checkout: make delayed checkout respect --quiet and --no-progress

3 years agoMerge branch 'dd/diff-files-unmerged-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:40 +0000 (13:51 -0700)] 
Merge branch 'dd/diff-files-unmerged-fix' into maint

"git diff --relative" segfaulted and/or produced incorrect result
when there are unmerged paths.

* dd/diff-files-unmerged-fix:
  diff-lib: ignore paths that are outside $cwd if --relative asked

3 years agoMerge branch 'rs/git-mmap-uses-malloc' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:39 +0000 (13:51 -0700)] 
Merge branch 'rs/git-mmap-uses-malloc' into maint

mmap() imitation used to call xmalloc() that dies upon malloc()
failure, which has been corrected to just return an error to the
caller to be handled.

* rs/git-mmap-uses-malloc:
  compat: let git_mmap use malloc(3) directly

3 years agoMerge branch 'pw/rebase-r-fixes' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:39 +0000 (13:51 -0700)] 
Merge branch 'pw/rebase-r-fixes' into maint

Various bugs in "git rebase -r" have been fixed.

* pw/rebase-r-fixes:
  rebase -r: fix merge -c with a merge strategy
  rebase -r: don't write .git/MERGE_MSG when fast-forwarding
  rebase -i: add another reword test
  rebase -r: make 'merge -c' behave like reword

3 years agoMerge branch 'pw/rebase-skip-final-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:39 +0000 (13:51 -0700)] 
Merge branch 'pw/rebase-skip-final-fix' into maint

Checking out all the paths from HEAD during the last conflicted
step in "git rebase" and continuing would cause the step to be
skipped (which is expected), but leaves MERGE_MSG file behind in
$GIT_DIR and confuses the next "git commit", which has been
corrected.

* pw/rebase-skip-final-fix:
  rebase --continue: remove .git/MERGE_MSG
  rebase --apply: restore some tests
  t3403: fix commit authorship

3 years agoMerge branch 'cb/ci-use-upload-artifacts-v1' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:38 +0000 (13:51 -0700)] 
Merge branch 'cb/ci-use-upload-artifacts-v1' into maint

Use upload-artifacts v1 (instead of v2) for 32-bit linux, as the
new version has a blocker bug for that architecture.

* cb/ci-use-upload-artifacts-v1:
  ci: use upload-artifacts v1 for dockerized jobs

3 years agoMerge branch 'jk/commit-edit-fixup-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:38 +0000 (13:51 -0700)] 
Merge branch 'jk/commit-edit-fixup-fix' into maint

"git commit --fixup" now works with "--edit" again, after it was
broken in v2.32.

* jk/commit-edit-fixup-fix:
  commit: restore --edit when combined with --fixup

3 years agoMerge branch 'jk/range-diff-fixes' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:38 +0000 (13:51 -0700)] 
Merge branch 'jk/range-diff-fixes' into maint

"git range-diff" code clean-up.

* jk/range-diff-fixes:
  range-diff: use ssize_t for parsed "len" in read_patches()
  range-diff: handle unterminated lines in read_patches()
  range-diff: drop useless "offset" variable from read_patches()

3 years agoMerge branch 'jk/apply-binary-hunk-parsing-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:37 +0000 (13:51 -0700)] 
Merge branch 'jk/apply-binary-hunk-parsing-fix' into maint

"git apply" miscounted the bytes and failed to read to the end of
binary hunks.

* jk/apply-binary-hunk-parsing-fix:
  apply: keep buffer/size pair in sync when parsing binary hunks

3 years agoMerge branch 'en/pull-conflicting-options' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:36 +0000 (13:51 -0700)] 
Merge branch 'en/pull-conflicting-options' into maint

"git pull" had various corner cases that were not well thought out
around its --rebase backend, e.g. "git pull --ff-only" did not stop
but went ahead and rebased when the history on other side is not a
descendant of our history.  The series tries to fix them up.

* en/pull-conflicting-options:
  pull: fix handling of multiple heads
  pull: update docs & code for option compatibility with rebasing
  pull: abort by default when fast-forwarding is not possible
  pull: make --rebase and --no-rebase override pull.ff=only
  pull: since --ff-only overrides, handle it first
  pull: abort if --ff-only is given and fast-forwarding is impossible
  t7601: add tests of interactions with multiple merge heads and config
  t7601: test interaction of merge/rebase/fast-forward flags and options

3 years agoMerge branch 'jt/push-negotiation-fixes' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:36 +0000 (13:51 -0700)] 
Merge branch 'jt/push-negotiation-fixes' into maint

Bugfix for common ancestor negotiation recently introduced in "git
push" codepath.

* jt/push-negotiation-fixes:
  fetch: die on invalid --negotiation-tip hash
  send-pack: fix push nego. when remote has refs
  send-pack: fix push.negotiate with remote helper

3 years agoMerge branch 'ab/pack-stdin-packs-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:35 +0000 (13:51 -0700)] 
Merge branch 'ab/pack-stdin-packs-fix' into maint

Input validation of "git pack-objects --stdin-packs" has been
corrected.

* ab/pack-stdin-packs-fix:
  pack-objects: fix segfault in --stdin-packs option
  pack-objects tests: cover blindspots in stdin handling

3 years agoMerge branch 'en/typofixes' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:35 +0000 (13:51 -0700)] 
Merge branch 'en/typofixes' into maint

Typofixes.

* en/typofixes:
  merge-ort: fix completely wrong comment
  trace2.h: fix trivial comment typo

3 years agoMerge branch 'cb/unicode-14' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:35 +0000 (13:51 -0700)] 
Merge branch 'cb/unicode-14' into maint

The unicode character width table (used for output alignment) has
been updated.

* cb/unicode-14:
  unicode: update the width tables to Unicode 14

3 years agoMerge branch 'po/git-config-doc-mentions-help-c' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:34 +0000 (13:51 -0700)] 
Merge branch 'po/git-config-doc-mentions-help-c' into maint

Doc update.

* po/git-config-doc-mentions-help-c:
  doc: config, tell readers of `git help --config`

3 years agoMerge branch 'kz/revindex-comment-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:34 +0000 (13:51 -0700)] 
Merge branch 'kz/revindex-comment-fix' into maint

Header comment fix.

* kz/revindex-comment-fix:
  pack-revindex.h: correct the time complexity descriptions

3 years agoMerge branch 'cb/plug-leaks-in-alloca-emu-users' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:34 +0000 (13:51 -0700)] 
Merge branch 'cb/plug-leaks-in-alloca-emu-users' into maint

Leakfix.

* cb/plug-leaks-in-alloca-emu-users:
  t0000: avoid masking git exit value through pipes
  tree-diff: fix leak when not HAVE_ALLOCA_H

3 years agoMerge branch 'ma/doc-git-version' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:34 +0000 (13:51 -0700)] 
Merge branch 'ma/doc-git-version' into maint

Doc update.

* ma/doc-git-version:
  documentation: add documentation for 'git version'

3 years agoMerge branch 'rs/drop-core-compression-vars' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:33 +0000 (13:51 -0700)] 
Merge branch 'rs/drop-core-compression-vars' into maint

Code clean-up.

* rs/drop-core-compression-vars:
  compression: drop write-only core_compression_* variables

3 years agoMerge branch 'jk/t5562-racefix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:33 +0000 (13:51 -0700)] 
Merge branch 'jk/t5562-racefix' into maint

Test update.

* jk/t5562-racefix:
  t5562: use alarm() to interrupt timed child-wait

3 years agoMerge branch 'rs/setup-use-xopen-and-xdup' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:33 +0000 (13:51 -0700)] 
Merge branch 'rs/setup-use-xopen-and-xdup' into maint

Code clean-up.

* rs/setup-use-xopen-and-xdup:
  setup: use xopen and xdup in sanitize_stdfds

3 years agoMerge branch 'jc/prefix-filename-allocates' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:32 +0000 (13:51 -0700)] 
Merge branch 'jc/prefix-filename-allocates' into maint

Leakfix.

* jc/prefix-filename-allocates:
  hash-object: prefix_filename() returns allocated memory these days

3 years agoMerge branch 'ab/no-more-check-bindir' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:32 +0000 (13:51 -0700)] 
Merge branch 'ab/no-more-check-bindir' into maint

Build simplification.

* ab/no-more-check-bindir:
  Makefile: remove the check_bindir script

3 years agoMerge branch 'bs/doc-bugreport-outdir' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:32 +0000 (13:51 -0700)] 
Merge branch 'bs/doc-bugreport-outdir' into maint

Docfix.

* bs/doc-bugreport-outdir:
  Documentation: fix default directory of git bugreport -o

3 years agoMerge branch 'cb/ci-build-pedantic' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:31 +0000 (13:51 -0700)] 
Merge branch 'cb/ci-build-pedantic' into maint

CI update.

* cb/ci-build-pedantic:
  ci: run a pedantic build as part of the GitHub workflow

3 years agoMerge branch 'rs/archive-use-object-id' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:31 +0000 (13:51 -0700)] 
Merge branch 'rs/archive-use-object-id' into maint

Code cleanup.

* rs/archive-use-object-id:
  archive: convert queue_directory to struct object_id

3 years agoMerge branch 'rs/show-branch-simplify' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:31 +0000 (13:51 -0700)] 
Merge branch 'rs/show-branch-simplify' into maint

Code cleanup.

* rs/show-branch-simplify:
  show-branch: simplify rev_is_head()

3 years agoMerge branch 'cb/remote-ndebug-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:30 +0000 (13:51 -0700)] 
Merge branch 'cb/remote-ndebug-fix' into maint

Build fix.

* cb/remote-ndebug-fix:
  remote: avoid -Wunused-but-set-variable in gcc with -DNDEBUG

3 years agoMerge branch 'ab/mailmap-leakfix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:30 +0000 (13:51 -0700)] 
Merge branch 'ab/mailmap-leakfix' into maint

Leakfix.

* ab/mailmap-leakfix:
  mailmap.c: fix a memory leak in free_mailap_{info,entry}()

3 years agoMerge branch 'ab/gc-log-rephrase' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:30 +0000 (13:51 -0700)] 
Merge branch 'ab/gc-log-rephrase' into maint

A pathname in an advice message has been made cut-and-paste ready.

* ab/gc-log-rephrase:
  gc: remove trailing dot from "gc.log" line

3 years agoMerge branch 'ba/object-info' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:29 +0000 (13:51 -0700)] 
Merge branch 'ba/object-info' into maint

Leakfix.

* ba/object-info:
  protocol-caps.c: fix memory leak in send_info()

3 years agoMerge branch 'es/walken-tutorial-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:29 +0000 (13:51 -0700)] 
Merge branch 'es/walken-tutorial-fix' into maint

Typofix.

* es/walken-tutorial-fix:
  doc: fix syntax error and the format of printf

3 years agoMerge branch 'rs/xopen-reports-open-failures' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:28 +0000 (13:51 -0700)] 
Merge branch 'rs/xopen-reports-open-failures' into maint

Error diagnostics improvement.

* rs/xopen-reports-open-failures:
  use xopen() to handle fatal open(2) failures
  xopen: explicitly report creation failures

3 years agoMerge branch 'dd/t6300-wo-gpg-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:28 +0000 (13:51 -0700)] 
Merge branch 'dd/t6300-wo-gpg-fix' into maint

Test fix.

* dd/t6300-wo-gpg-fix:
  t6300: check for cat-file exit status code
  t6300: don't run cat-file on non-existent object

3 years agoMerge branch 'mh/credential-leakfix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:28 +0000 (13:51 -0700)] 
Merge branch 'mh/credential-leakfix' into maint

Leak fix.

* mh/credential-leakfix:
  credential: fix leak in credential_apply_config()

3 years agoMerge branch 'jk/t5323-no-pack-test-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:27 +0000 (13:51 -0700)] 
Merge branch 'jk/t5323-no-pack-test-fix' into maint

Test fix.

* jk/t5323-no-pack-test-fix:
  t5323: drop mentions of "master"

3 years agoMerge branch 'js/maintenance-launchctl-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:27 +0000 (13:51 -0700)] 
Merge branch 'js/maintenance-launchctl-fix' into maint

"git maintenance" scheduler fix for macOS.

* js/maintenance-launchctl-fix:
  maintenance: skip bootout/bootstrap when plist is registered
  maintenance: create `launchctl` configuration using a lock file

3 years agoMerge branch 'ab/rebase-fatal-fatal-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:27 +0000 (13:51 -0700)] 
Merge branch 'ab/rebase-fatal-fatal-fix' into maint

Error message fix.

* ab/rebase-fatal-fatal-fix:
  rebase: emit one "fatal" in "fatal: fatal: <error>"

3 years agoMerge branch 'ab/ls-remote-packet-trace' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:26 +0000 (13:51 -0700)] 
Merge branch 'ab/ls-remote-packet-trace' into maint

Debugging aid fix.

* ab/ls-remote-packet-trace:
  ls-remote: set packet_trace_identity(<name>)

3 years agoMerge branch 'ga/send-email-sendmail-cmd' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:26 +0000 (13:51 -0700)] 
Merge branch 'ga/send-email-sendmail-cmd' into maint

Test fix.

* ga/send-email-sendmail-cmd:
  t9001: PATH must not use Windows-style paths

3 years agoMerge branch 'me/t5582-cleanup' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:25 +0000 (13:51 -0700)] 
Merge branch 'me/t5582-cleanup' into maint

Test fix.

* me/t5582-cleanup:
  t5582: remove spurious 'cd "$D"' line

3 years agoMerge branch 'sg/make-fix-ar-invocation' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:25 +0000 (13:51 -0700)] 
Merge branch 'sg/make-fix-ar-invocation' into maint

Build fix.

* sg/make-fix-ar-invocation:
  Makefile: remove archives before manipulating them with 'ar'

3 years agoMerge branch 'ti/tcsh-completion-regression-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:24 +0000 (13:51 -0700)] 
Merge branch 'ti/tcsh-completion-regression-fix' into maint

Update to the command line completion (in contrib/) for tcsh.

* ti/tcsh-completion-regression-fix:
  completion: tcsh: Fix regression by drop of wrapper functions

3 years agoMerge branch 'fc/completion-updates' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:24 +0000 (13:51 -0700)] 
Merge branch 'fc/completion-updates' into maint

Command line completion updates.

* fc/completion-updates:
  completion: bash: add correct suffix in variables
  completion: bash: fix for multiple dash commands
  completion: bash: fix for suboptions with value
  completion: bash: fix prefix detection in branch.*

3 years agoMerge branch 'cb/ci-freebsd-update' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:24 +0000 (13:51 -0700)] 
Merge branch 'cb/ci-freebsd-update' into maint

Update FreeBSD CI job

* cb/ci-freebsd-update:
  ci: update freebsd 12 cirrus job

3 years agoMerge branch 'cb/builtin-merge-format-string-fix' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:23 +0000 (13:51 -0700)] 
Merge branch 'cb/builtin-merge-format-string-fix' into maint

Code clean-up.

* cb/builtin-merge-format-string-fix:
  builtin/merge: avoid -Wformat-extra-args from ancient Xcode

3 years agoMerge branch 'js/log-protocol-version' into maint
Junio C Hamano [Tue, 12 Oct 2021 20:51:22 +0000 (13:51 -0700)] 
Merge branch 'js/log-protocol-version' into maint

Debugging aid.

* js/log-protocol-version:
  connect, protocol: log negotiated protocol version