]> Kevux Git Server - rit/log
rit
3 years agoMerge branch 'tl/range-diff-custom-abbrev'
Junio C Hamano [Mon, 27 Feb 2023 18:08:56 +0000 (10:08 -0800)]
Merge branch 'tl/range-diff-custom-abbrev'

"git range-diff" learned --abbrev=<num> option.

* tl/range-diff-custom-abbrev:
  range-diff: let '--abbrev' option takes effect

3 years agoMerge branch 'ap/t2015-style-update'
Junio C Hamano [Mon, 27 Feb 2023 18:08:56 +0000 (10:08 -0800)]
Merge branch 'ap/t2015-style-update'

Test clean-up.

* ap/t2015-style-update:
  t2015-checkout-unborn.sh: changes the style for cd

3 years agoMerge branch 'jc/diff-algo-attribute'
Junio C Hamano [Mon, 27 Feb 2023 18:08:56 +0000 (10:08 -0800)]
Merge branch 'jc/diff-algo-attribute'

The "diff" drivers specified by the "diff" attribute attached to
paths can now specify which algorithm (e.g. histogram) to use.

* jc/diff-algo-attribute:
  diff: teach diff to read algorithm from diff driver
  diff: consolidate diff algorithm option parsing

3 years agoMerge branch 'pw/rebase-i-validate-labels-early'
Junio C Hamano [Mon, 27 Feb 2023 18:08:56 +0000 (10:08 -0800)]
Merge branch 'pw/rebase-i-validate-labels-early'

An invalid label or ref in the "rebase -i" todo file used to
trigger an runtime error. SUch an error is now diagnosed while the
todo file is parsed.

* pw/rebase-i-validate-labels-early:
  rebase -i: check labels and refs when parsing todo list

3 years agoA few more topics post 2.40-rc0
Junio C Hamano [Sat, 25 Feb 2023 06:53:08 +0000 (22:53 -0800)]
A few more topics post 2.40-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ps/free-island-marks'
Junio C Hamano [Sat, 25 Feb 2023 06:54:01 +0000 (22:54 -0800)]
Merge branch 'ps/free-island-marks'

Fix on a previous fix already in 'master'.

* ps/free-island-marks:
  delta-islands: fix segfault when freeing island marks

3 years agoMerge branch 'jk/http-proxy-tests'
Junio C Hamano [Sat, 25 Feb 2023 06:54:01 +0000 (22:54 -0800)]
Merge branch 'jk/http-proxy-tests'

Test updates.

* jk/http-proxy-tests:
  add basic http proxy tests

3 years agoMerge branch 'ma/fetch-parallel-use-online-cpus'
Junio C Hamano [Sat, 25 Feb 2023 06:54:00 +0000 (22:54 -0800)]
Merge branch 'ma/fetch-parallel-use-online-cpus'

"git fetch --jobs=0" used to hit a BUG(), which has been corrected
to use the available CPUs.

* ma/fetch-parallel-use-online-cpus:
  fetch: choose a sensible default with --jobs=0 again

3 years agoGit 2.40-rc0
Junio C Hamano [Fri, 24 Feb 2023 19:32:40 +0000 (11:32 -0800)]
Git 2.40-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'jc/genzeros-avoid-raw-write'
Junio C Hamano [Fri, 24 Feb 2023 19:32:30 +0000 (11:32 -0800)]
Merge branch 'jc/genzeros-avoid-raw-write'

A test helper had a single write(2) of 256kB, which was too big for
some platforms (e.g. NonStop), which has been corrected by using
xwrite() wrapper appropriately.

* jc/genzeros-avoid-raw-write:
  test-genzeros: avoid raw write(2)

3 years agoMerge branch 'rd/doc-default-date-format'
Junio C Hamano [Fri, 24 Feb 2023 19:32:29 +0000 (11:32 -0800)]
Merge branch 'rd/doc-default-date-format'

Update --date=default documentation.

* rd/doc-default-date-format:
  rev-list: clarify git-log default date format

3 years agoMerge branch 'js/gpg-errors'
Junio C Hamano [Fri, 24 Feb 2023 19:32:29 +0000 (11:32 -0800)]
Merge branch 'js/gpg-errors'

Error messages given upon a signature verification failure used to
discard the errors from underlying gpg program, which has been
corrected.

* js/gpg-errors:
  gpg: do show gpg's error message upon failure
  t7510: add a test case that does not need gpg

3 years agoMerge branch 'rs/ctype-test'
Junio C Hamano [Fri, 24 Feb 2023 19:32:29 +0000 (11:32 -0800)]
Merge branch 'rs/ctype-test'

Test safe_ctype

* rs/ctype-test:
  test-ctype: test iscntrl, ispunct, isxdigit and isprint
  test-ctype: test islower and isupper
  test-ctype: test isascii

3 years agoThe seventeenth batch
Junio C Hamano [Wed, 22 Feb 2023 22:55:59 +0000 (14:55 -0800)]
The seventeenth batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ab/hook-api-with-stdin'
Junio C Hamano [Wed, 22 Feb 2023 22:55:45 +0000 (14:55 -0800)]
Merge branch 'ab/hook-api-with-stdin'

Extend the run-hooks API to allow feeding data from the standard
input when running the hook script(s).

* ab/hook-api-with-stdin:
  hook: support a --to-stdin=<path> option
  sequencer: use the new hook API for the simpler "post-rewrite" call
  hook API: support passing stdin to hooks, convert am's 'post-rewrite'
  run-command: allow stdin for run_processes_parallel
  run-command.c: remove dead assignment in while-loop

3 years agoMerge branch 'ab/various-leak-fixes'
Junio C Hamano [Wed, 22 Feb 2023 22:55:45 +0000 (14:55 -0800)]
Merge branch 'ab/various-leak-fixes'

Leak fixes.

* ab/various-leak-fixes:
  push: free_refs() the "local_refs" in set_refspecs()
  push: refactor refspec_append_mapped() for subsequent leak-fix
  receive-pack: release the linked "struct command *" list
  grep API: plug memory leaks by freeing "header_list"
  grep.c: refactor free_grep_patterns()
  builtin/merge.c: free "&buf" on "Your local changes..." error
  builtin/merge.c: use fixed strings, not "strbuf", fix leak
  show-branch: free() allocated "head" before return
  commit-graph: fix a parse_options_concat() leak
  http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()
  http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()
  worktree: fix a trivial leak in prune_worktrees()
  repack: fix leaks on error with "goto cleanup"
  name-rev: don't xstrdup() an already dup'd string
  various: add missing clear_pathspec(), fix leaks
  clone: use free() instead of UNLEAK()
  commit-graph: use free_commit_graph() instead of UNLEAK()
  bundle.c: don't leak the "args" in the "struct child_process"
  tests: mark tests as passing with SANITIZE=leak

3 years agoMerge branch 'jk/doc-ls-remote-matching'
Junio C Hamano [Wed, 22 Feb 2023 22:55:45 +0000 (14:55 -0800)]
Merge branch 'jk/doc-ls-remote-matching'

Doc update.

* jk/doc-ls-remote-matching:
  doc/ls-remote: clarify pattern format
  doc/ls-remote: cosmetic cleanups for examples

3 years agoMerge branch 'rs/cache-tree-strbuf-growth-fix'
Junio C Hamano [Wed, 22 Feb 2023 22:55:44 +0000 (14:55 -0800)]
Merge branch 'rs/cache-tree-strbuf-growth-fix'

Remove unnecessary explicit sizing of strbuf.

* rs/cache-tree-strbuf-growth-fix:
  cache-tree: fix strbuf growth in prime_cache_tree_rec()

3 years agoMerge branch 'ab/the-index-compatibility'
Junio C Hamano [Wed, 22 Feb 2023 22:55:44 +0000 (14:55 -0800)]
Merge branch 'ab/the-index-compatibility'

Remove more remaining uses of macros that relies on the_index
singleton instance without explicitly spelling it out.

* ab/the-index-compatibility:
  cocci & cache.h: remove "USE_THE_INDEX_COMPATIBILITY_MACROS"
  cache-tree API: remove redundant update_main_cache_tree()
  cocci & cache-tree.h: migrate "write_cache_as_tree" to "*_index_*"
  cocci & cache.h: apply pending "index_cache_pos" rule
  cocci & cache.h: fully apply "active_nr" part of index-compatibility
  builtin/rm.c: use narrower "USE_THE_INDEX_VARIABLE"

3 years agoMerge branch 'en/name-rev-make-taggerdate-much-less-important'
Junio C Hamano [Wed, 22 Feb 2023 22:55:44 +0000 (14:55 -0800)]
Merge branch 'en/name-rev-make-taggerdate-much-less-important'

"git name-rev" heuristics update.

* en/name-rev-make-taggerdate-much-less-important:
  name-rev: fix names by dropping taggerdate workaround

3 years agorange-diff: let '--abbrev' option takes effect
Teng Long [Mon, 20 Feb 2023 14:24:44 +0000 (22:24 +0800)]
range-diff: let '--abbrev' option takes effect

As mentioned in 'git-range-diff.txt': "`git range-diff` also accepts the
regular diff options (see linkgit:git-diff[1])...", but '--abbrev' is not
in the "regular" scope.

In Git, the "abbrev" of an object may not be a fixed value in different
repositories, depending on the needs of the them(Linus mentioned in
e6c587c7 in 2016: "the Linux kernel project needs 11 to 12 hexdigits"
at that time ), that's why a user may want to display abbrev according
to a specified length.

Although a similar effect can be achieved through configuration (like:
git -c core.abbrev=<abbrev>), but based on ease of use (many users may not
know that the -c option can be specified) and the description in existing
document, supporting users to directly use '--abbrev', could be a good way.

Signed-off-by: Teng Long <dyroneteng@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agofetch: choose a sensible default with --jobs=0 again
Matthias Aßhauer [Mon, 20 Feb 2023 21:33:25 +0000 (21:33 +0000)]
fetch: choose a sensible default with --jobs=0 again

prior to 51243f9 (run-command API: don't fall back on online_cpus(),
2022-10-12) `git fetch --multiple --jobs=0` would choose some default amount
of jobs, similar to `git -c fetch.parallel=0 fetch --multiple`. While our
documentation only ever promised that `fetch.parallel` would fall back to a
"sensible default", it makes sense to do the same for `--jobs`. So fall back
to online_cpus() and not BUG() out.

This fixes https://github.com/git-for-windows/git/issues/4302

Reported-by: Drew Noakes <drnoakes@microsoft.com>
Signed-off-by: Matthias Aßhauer <mha1993@live.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agot2015-checkout-unborn.sh: changes the style for cd
Ashutosh Pandey [Sat, 18 Feb 2023 19:21:28 +0000 (00:51 +0530)]
t2015-checkout-unborn.sh: changes the style for cd

the `cd` followed the old style which wasn't consistent with the rest of
the test suite, so this commit makes it consistent with the current
style of the test suite for `cd` in  subshell.

Signed-off-by: Ashutosh Pandey <ashutosh.pandeyhlr007@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agodiff: teach diff to read algorithm from diff driver
John Cai [Mon, 20 Feb 2023 21:04:42 +0000 (21:04 +0000)]
diff: teach diff to read algorithm from diff driver

It can be useful to specify diff algorithms per file type. For example,
one may want to use the minimal diff algorithm for .json files, another
for .c files, etc.

The diff machinery already checks attributes for a diff driver. Teach
the diff driver parser a new type "algorithm" to look for in the
config, which will be used if a driver has been specified through the
attributes.

Enforce precedence of the diff algorithm by favoring the command line
option, then looking at the driver attributes & config combination, then
finally the diff.algorithm config.

To enforce precedence order, use a new `ignore_driver_algorithm` member
during options parsing to indicate the diff algorithm was set via command
line args.

Signed-off-by: John Cai <johncai86@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agodiff: consolidate diff algorithm option parsing
John Cai [Mon, 20 Feb 2023 21:04:41 +0000 (21:04 +0000)]
diff: consolidate diff algorithm option parsing

A subsequent commit will need the ability to tell if the diff algorithm
was set through the command line through setting a new member of
diff_options. While this logic can be added to the
diff_opt_diff_algorithm() callback, the `--minimal` and `--histogram`
options are handled via OPT_BIT without a callback.

Remedy this by consolidating the options parsing logic for --minimal and
--histogram into one callback. This way we can modify `diff_options` in
that function.

As an additional refactor, the logic that sets the diff algorithm in
diff_opt_diff_algorithm() can be refactored into a helper that will
allow multiple callsites to set the diff algorithm.

Signed-off-by: John Cai <johncai86@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorebase -i: check labels and refs when parsing todo list
Phillip Wood [Mon, 20 Feb 2023 14:19:34 +0000 (14:19 +0000)]
rebase -i: check labels and refs when parsing todo list

Check that the argument to the "label" and "update-ref" commands is a
valid refname when the todo list is parsed rather than waiting until the
command is executed. This means that the user can deal with any errors
at the beginning of the rebase rather than having it stop halfway
through due to a typo in a label name. The "update-ref" command is
changed to reject single level refs as it is all to easy to type
"update-ref branch" which is incorrect rather than "update-ref
refs/heads/branch"

Note that it is not straight forward to check the arguments to "reset"
and "merge" commands as they may be any revision, not just a refname and
we do not have an equivalent of check_refname_format() for revisions.

Helped-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Acked-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agodelta-islands: fix segfault when freeing island marks
Patrick Steinhardt [Thu, 16 Feb 2023 10:29:48 +0000 (11:29 +0100)]
delta-islands: fix segfault when freeing island marks

In 647982bb71 (delta-islands: free island_marks and bitmaps, 2023-02-03)
we have introduced logic to free `island_marks` in order to reduce heap
memory usage in git-pack-objects(1). This commit is causing segfaults in
the case where this Git command does not load delta islands at all, e.g.
when reading object IDs from standard input. One such crash can be hit
when using repacking multi-pack-indices with delta islands enabled.

The root cause of this bug is that we unconditionally dereference the
`island_marks` variable even in the case where it is a `NULL` pointer,
which is fixed by making it conditional. Note that we still leave the
logic in place to set the pointer to `-1` to detect use-after-free bugs
even when there are no loaded island marks at all.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Acked-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoadd basic http proxy tests
Jeff King [Thu, 16 Feb 2023 20:56:32 +0000 (15:56 -0500)]
add basic http proxy tests

We do not test our http proxy functionality at all in the test suite, so
this is a pretty big blind spot. Let's at least add a basic check that
we can go through an authenticating proxy to perform a clone.

A few notes on the implementation:

  - I'm using a single apache instance to proxy to itself. This seems to
    work fine in practice, and we can check with a test that this rather
    unusual setup is doing what we expect.

  - I've put the proxy tests into their own script, and it's the only
    one which loads the apache proxy config. If any platform can't
    handle this (e.g., doesn't have the right modules), the start_httpd
    step should fail and gracefully skip the rest of the script (but all
    the other http tests in existing scripts will continue to run).

  - I used a separate passwd file to make sure we don't ever get
    confused between proxy and regular auth credentials. It's using the
    antiquated crypt() format. This is a terrible choice security-wise
    in the modern age, but it's what our existing passwd file uses, and
    should be portable. It would probably be reasonable to switch both
    of these to bcrypt, but we can do that in a separate patch.

  - On the client side, we test two situations with credentials: when
    they are present in the url, and when the username is present but we
    prompt for the password. I think we should be able to handle the
    case that _neither_ is present, but an HTTP 407 causes us to prompt
    for them. However, this doesn't seem to work. That's either a bug,
    or at the very least an opportunity for a feature, but I punted on
    it for now. The point of this patch is just getting basic coverage,
    and we can explore possible deficiencies later.

  - this doesn't work with LIB_HTTPD_SSL. This probably would be
    valuable to have, as https over an http proxy is totally different
    (it uses CONNECT to tunnel the session). But adding in
    mod_proxy_connect and some basic config didn't seem to work for me,
    so I punted for now. Much of the rest of the test suite does not
    currently work with LIB_HTTPD_SSL either, so we shouldn't be making
    anything much worse here.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agotest-genzeros: avoid raw write(2)
Junio C Hamano [Thu, 16 Feb 2023 02:56:14 +0000 (18:56 -0800)]
test-genzeros: avoid raw write(2)

This test helper feeds 256kB of data at once to a single invocation
of the write(2) system call, which may be too much for some
platforms.

Call our xwrite() wrapper that knows to honor MAX_IO_SIZE limit and
cope with short writes due to EINTR instead, and die a bit more
loudly by calling die_errno() when xwrite() indicates an error.

Reported-by: Randall S. Becker <rsbecker@nexbridge.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorev-list: clarify git-log default date format
Junio C Hamano [Thu, 16 Feb 2023 00:42:25 +0000 (16:42 -0800)]
rev-list: clarify git-log default date format

The documentation mistakenly said that the default format was
similar to RFC 2822 format and tried to specify it by enumerating
differences, which had two problems:

 * There are some more differences from the 2822 format that are not
   mentioned; worse yet

 * The default format is not modeled after RFC 2822 format at all.
   As can be seen in f80cd783 (date.c: add "show_date()" function.,
   2005-05-06), it is a derivative of ctime(3) format.

Stop saying that it is similar to RFC 2822, and rewrite the
description to explain the format without requiring the reader to
know any other format.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoThe sixteenth batch
Junio C Hamano [Thu, 16 Feb 2023 00:08:41 +0000 (16:08 -0800)]
The sixteenth batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'cw/doc-pushurl-vs-url'
Junio C Hamano [Thu, 16 Feb 2023 01:11:54 +0000 (17:11 -0800)]
Merge branch 'cw/doc-pushurl-vs-url'

Doc update.

* cw/doc-pushurl-vs-url:
  Documentation: clarify multiple pushurls vs urls

3 years agoMerge branch 'ab/config-h-remove-unused'
Junio C Hamano [Thu, 16 Feb 2023 01:11:54 +0000 (17:11 -0800)]
Merge branch 'ab/config-h-remove-unused'

Code clean-up.

* ab/config-h-remove-unused:
  config.h: remove unused git_configset_add_parameters()

3 years agoMerge branch 'ab/retire-scripted-add-p'
Junio C Hamano [Thu, 16 Feb 2023 01:11:53 +0000 (17:11 -0800)]
Merge branch 'ab/retire-scripted-add-p'

Finally retire the scripted "git add -p/-i" implementation and have
everybody use the one reimplemented in C.

* ab/retire-scripted-add-p:
  docs & comments: replace mentions of "git-add--interactive.perl"
  add API: remove run_add_interactive() wrapper function
  add: remove "add.interactive.useBuiltin" & Perl "git add--interactive"

3 years agoMerge branch 'rs/size-t-fixes'
Junio C Hamano [Thu, 16 Feb 2023 01:11:53 +0000 (17:11 -0800)]
Merge branch 'rs/size-t-fixes'

Type fixes.

* rs/size-t-fixes:
  pack-objects: use strcspn(3) in name_cmp_len()
  read-cache: use size_t for {base,df}_name_compare()

3 years agoMerge branch 'kf/t5000-modernise'
Junio C Hamano [Thu, 16 Feb 2023 01:11:53 +0000 (17:11 -0800)]
Merge branch 'kf/t5000-modernise'

Test clean-up.

* kf/t5000-modernise:
  t5000: modernise archive and :(glob) test

3 years agoMerge branch 'wl/new-command-doc'
Junio C Hamano [Thu, 16 Feb 2023 01:11:53 +0000 (17:11 -0800)]
Merge branch 'wl/new-command-doc'

Comment fix.

* wl/new-command-doc:
  new-command.txt: update reference to builtin docs

3 years agoMerge branch 'ar/userdiff-java-update'
Junio C Hamano [Thu, 16 Feb 2023 01:11:52 +0000 (17:11 -0800)]
Merge branch 'ar/userdiff-java-update'

Userdiff regexp update for Java language.

* ar/userdiff-java-update:
  userdiff: support Java sealed classes
  userdiff: support Java record types
  userdiff: support Java type parameters

3 years agoMerge branch 'po/attributes-text'
Junio C Hamano [Thu, 16 Feb 2023 01:11:52 +0000 (17:11 -0800)]
Merge branch 'po/attributes-text'

In-tree .gitattributes update to match the way we recommend our
users to mark a file as text.

* po/attributes-text:
  .gitattributes: include `text` attribute for eol attributes

3 years agoMerge branch 'ab/sequencer-unleak'
Junio C Hamano [Thu, 16 Feb 2023 01:11:52 +0000 (17:11 -0800)]
Merge branch 'ab/sequencer-unleak'

Plug leaks in sequencer subsystem and its users.

* ab/sequencer-unleak:
  commit.c: free() revs.commit in get_fork_point()
  builtin/rebase.c: free() "options.strategy_opts"
  sequencer.c: always free() the "msgbuf" in do_pick_commit()
  builtin/rebase.c: fix "options.onto_name" leak
  builtin/revert.c: move free-ing of "revs" to replay_opts_release()
  sequencer API users: fix get_replay_opts() leaks
  sequencer.c: split up sequencer_remove_state()
  rebase: use "cleanup" pattern in do_interactive_rebase()

3 years agoMerge branch 'ds/bundle-uri-5'
Junio C Hamano [Thu, 16 Feb 2023 01:11:52 +0000 (17:11 -0800)]
Merge branch 'ds/bundle-uri-5'

The bundle-URI subsystem adds support for creation-token heuristics
to help incremental fetches.

* ds/bundle-uri-5:
  bundle-uri: test missing bundles with heuristic
  bundle-uri: store fetch.bundleCreationToken
  fetch: fetch from an external bundle URI
  bundle-uri: drop bundle.flag from design doc
  clone: set fetch.bundleURI if appropriate
  bundle-uri: download in creationToken order
  bundle-uri: parse bundle.<id>.creationToken values
  bundle-uri: parse bundle.heuristic=creationToken
  t5558: add tests for creationToken heuristic
  bundle: verify using check_connected()
  bundle: test unbundling with incomplete history

3 years agoMerge branch 'cb/grep-fallback-failing-jit'
Junio C Hamano [Thu, 16 Feb 2023 01:11:51 +0000 (17:11 -0800)]
Merge branch 'cb/grep-fallback-failing-jit'

In an environment where dynamically generated code is prohibited to
run (e.g. SELinux), failure to JIT pcre patterns is expected.  Fall
back to interpreted execution in such a case.

* cb/grep-fallback-failing-jit:
  grep: fall back to interpreter if JIT memory allocation fails

3 years agogpg: do show gpg's error message upon failure
Johannes Schindelin [Wed, 15 Feb 2023 05:58:34 +0000 (05:58 +0000)]
gpg: do show gpg's error message upon failure

There are few things more frustrating when signing a commit fails than
reading a terse "error: gpg failed to sign the data" message followed by
the unsurprising "fatal: failed to write commit object" message.

In many cases where signing a commit or tag fails, `gpg` actually said
something helpful, on its stderr, and Git even consumed that, but then
keeps mum about it.

Teach Git to stop withholding that rather important information.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agot7510: add a test case that does not need gpg
Johannes Schindelin [Wed, 15 Feb 2023 05:58:33 +0000 (05:58 +0000)]
t7510: add a test case that does not need gpg

This test case not only increases test coverage in setups without
working gpg, but also prepares for verifying that the error message of
`gpg.program` is shown upon failure.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoSync with 'maint'
Junio C Hamano [Tue, 14 Feb 2023 22:17:35 +0000 (14:17 -0800)]
Sync with 'maint'

3 years agoPrepare for 2.39.3 just in case
Junio C Hamano [Tue, 14 Feb 2023 22:15:23 +0000 (14:15 -0800)]
Prepare for 2.39.3 just in case

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'sk/remove-duplicate-includes' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:57 +0000 (14:15 -0800)]
Merge branch 'sk/remove-duplicate-includes' into maint-2.39

Code clean-up.

* sk/remove-duplicate-includes:
  git: remove duplicate includes

3 years agoMerge branch 'rs/clarify-error-in-write-loose-object' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:57 +0000 (14:15 -0800)]
Merge branch 'rs/clarify-error-in-write-loose-object' into maint-2.39

Code clean-up.

* rs/clarify-error-in-write-loose-object:
  object-file: inline write_buffer()

3 years agoMerge branch 'rs/reflog-expiry-cleanup' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:56 +0000 (14:15 -0800)]
Merge branch 'rs/reflog-expiry-cleanup' into maint-2.39

Code clean-up.

* rs/reflog-expiry-cleanup:
  reflog: clear leftovers in reflog_expiry_cleanup()

3 years agoMerge branch 'rs/clear-commit-marks-cleanup' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:56 +0000 (14:15 -0800)]
Merge branch 'rs/clear-commit-marks-cleanup' into maint-2.39

Code clean-up.

* rs/clear-commit-marks-cleanup:
  commit: skip already cleared parents in clear_commit_marks_1()

3 years agoMerge branch 'rs/am-parse-options-cleanup' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:56 +0000 (14:15 -0800)]
Merge branch 'rs/am-parse-options-cleanup' into maint-2.39

Code clean-up.

* rs/am-parse-options-cleanup:
  am: don't pass strvec to apply_parse_options()

3 years agoMerge branch 'jk/server-supports-v2-cleanup' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:55 +0000 (14:15 -0800)]
Merge branch 'jk/server-supports-v2-cleanup' into maint-2.39

Code clean-up.

* jk/server-supports-v2-cleanup:
  server_supports_v2(): use a separate function for die_on_error

3 years agoMerge branch 'jk/unused-post-2.39' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:55 +0000 (14:15 -0800)]
Merge branch 'jk/unused-post-2.39' into maint-2.39

Code clean-up around unused function parameters.

* jk/unused-post-2.39:
  userdiff: mark unused parameter in internal callback
  list-objects-filter: mark unused parameters in virtual functions
  diff: mark unused parameters in callbacks
  xdiff: mark unused parameter in xdl_call_hunk_func()
  xdiff: drop unused parameter in def_ff()
  ws: drop unused parameter from ws_blank_line()
  list-objects: drop process_gitlink() function
  blob: drop unused parts of parse_blob_buffer()
  ls-refs: use repository parameter to iterate refs

3 years agoMerge branch 'rj/branch-copy-and-rename' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:55 +0000 (14:15 -0800)]
Merge branch 'rj/branch-copy-and-rename' into maint-2.39

Fix a pair of bugs in 'git branch'.

* rj/branch-copy-and-rename:
  branch: force-copy a branch to itself via @{-1} is a no-op

3 years agoMerge branch 'rs/t3920-crlf-eating-grep-fix' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:54 +0000 (14:15 -0800)]
Merge branch 'rs/t3920-crlf-eating-grep-fix' into maint-2.39

Test fix.

* rs/t3920-crlf-eating-grep-fix:
  t3920: support CR-eating grep

3 years agoMerge branch 'js/t3920-shell-and-or-fix' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:54 +0000 (14:15 -0800)]
Merge branch 'js/t3920-shell-and-or-fix' into maint-2.39

Test fix.

* js/t3920-shell-and-or-fix:
  t3920: don't ignore errors of more than one command with `|| true`

3 years agoMerge branch 'ab/t4023-avoid-losing-exit-status-of-diff' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:54 +0000 (14:15 -0800)]
Merge branch 'ab/t4023-avoid-losing-exit-status-of-diff' into maint-2.39

Test fix.

* ab/t4023-avoid-losing-exit-status-of-diff:
  t4023: fix ignored exit codes of git

3 years agoMerge branch 'ab/t7600-avoid-losing-exit-status-of-git' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:53 +0000 (14:15 -0800)]
Merge branch 'ab/t7600-avoid-losing-exit-status-of-git' into maint-2.39

Test fix.

* ab/t7600-avoid-losing-exit-status-of-git:
  t7600: don't ignore "rev-parse" exit code in helper

3 years agoMerge branch 'ab/t5314-avoid-losing-exit-status' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:53 +0000 (14:15 -0800)]
Merge branch 'ab/t5314-avoid-losing-exit-status' into maint-2.39

Test fix.

* ab/t5314-avoid-losing-exit-status:
  t5314: check exit code of "git"

3 years agoMerge branch 'rs/plug-pattern-list-leak-in-lof' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:53 +0000 (14:15 -0800)]
Merge branch 'rs/plug-pattern-list-leak-in-lof' into maint-2.39

Leak fix.

* rs/plug-pattern-list-leak-in-lof:
  list-objects-filter: plug pattern_list leak

3 years agoMerge branch 'rs/t4205-do-not-exit-in-test-script' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:53 +0000 (14:15 -0800)]
Merge branch 'rs/t4205-do-not-exit-in-test-script' into maint-2.39

Test fix.

* rs/t4205-do-not-exit-in-test-script:
  t4205: don't exit test script on failure

3 years agoMerge branch 'jc/doc-checkout-b' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:52 +0000 (14:15 -0800)]
Merge branch 'jc/doc-checkout-b' into maint-2.39

Clarify how "checkout -b/-B" and "git branch [-f]" are similar but
different in the documentation.

* jc/doc-checkout-b:
  checkout: document -b/-B to highlight the differences from "git branch"

3 years agoMerge branch 'jc/doc-branch-update-checked-out-branch' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:52 +0000 (14:15 -0800)]
Merge branch 'jc/doc-branch-update-checked-out-branch' into maint-2.39

Document that "branch -f <branch>" disables only the safety to
avoid recreating an existing branch.

* jc/doc-branch-update-checked-out-branch:
  branch: document `-f` and linked worktree behaviour

3 years agoMerge branch 'rs/ls-tree-path-expansion-fix' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:52 +0000 (14:15 -0800)]
Merge branch 'rs/ls-tree-path-expansion-fix' into maint-2.39

"git ls-tree --format='%(path) %(path)' $tree $path" showed the
path three times, which has been corrected.

* rs/ls-tree-path-expansion-fix:
  ls-tree: remove dead store and strbuf for quote_c_style()
  ls-tree: fix expansion of repeated %(path)

3 years agoMerge branch 'pb/doc-orig-head' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:51 +0000 (14:15 -0800)]
Merge branch 'pb/doc-orig-head' into maint-2.39

Document ORIG_HEAD a bit more.

* pb/doc-orig-head:
  git-rebase.txt: add a note about 'ORIG_HEAD' being overwritten
  revisions.txt: be explicit about commands writing 'ORIG_HEAD'
  git-merge.txt: mention 'ORIG_HEAD' in the Description
  git-reset.txt: mention 'ORIG_HEAD' in the Description
  git-cherry-pick.txt: do not use 'ORIG_HEAD' in example

3 years agoMerge branch 'es/hooks-and-local-env' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:51 +0000 (14:15 -0800)]
Merge branch 'es/hooks-and-local-env' into maint-2.39

Doc update for environment variables set when hooks are invoked.

* es/hooks-and-local-env:
  githooks: discuss Git operations in foreign repositories

3 years agoMerge branch 'ws/single-file-cone' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:51 +0000 (14:15 -0800)]
Merge branch 'ws/single-file-cone' into maint-2.39

The logic to see if we are using the "cone" mode by checking the
sparsity patterns has been tightened to avoid mistaking a pattern
that names a single file as specifying a cone.

* ws/single-file-cone:
  dir: check for single file cone patterns

3 years agoMerge branch 'jk/ext-diff-with-relative' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:50 +0000 (14:15 -0800)]
Merge branch 'jk/ext-diff-with-relative' into maint-2.39

"git diff --relative" did not mix well with "git diff --ext-diff",
which has been corrected.

* jk/ext-diff-with-relative:
  diff: drop "name" parameter from prepare_temp_file()
  diff: clean up external-diff argv setup
  diff: use filespec path to set up tempfiles for ext-diff

3 years agoMerge branch 'ab/bundle-wo-args' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:50 +0000 (14:15 -0800)]
Merge branch 'ab/bundle-wo-args' into maint-2.39

Fix to a small regression in 2.38 days.

* ab/bundle-wo-args:
  bundle <cmd>: have usage_msg_opt() note the missing "<file>"
  builtin/bundle.c: remove superfluous "newargc" variable
  bundle: don't segfault on "git bundle <subcmd>"

3 years agoMerge branch 'ps/fsync-refs-fix' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:50 +0000 (14:15 -0800)]
Merge branch 'ps/fsync-refs-fix' into maint-2.39

Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to
flush its output to the disk..

* ps/fsync-refs-fix:
  refs: fix corruption by not correctly syncing packed-refs to disk

3 years agoMerge branch 'lk/line-range-parsing-fix' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:49 +0000 (14:15 -0800)]
Merge branch 'lk/line-range-parsing-fix' into maint-2.39

When given a pattern that matches an empty string at the end of a
line, the code to parse the "git diff" line-ranges fell into an
infinite loop, which has been corrected.

* lk/line-range-parsing-fix:
  line-range: fix infinite loop bug with '$' regex

3 years agoMerge branch 'rs/use-enhanced-bre-on-macos' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:49 +0000 (14:15 -0800)]
Merge branch 'rs/use-enhanced-bre-on-macos' into maint-2.39

Newer regex library macOS stopped enabling GNU-like enhanced BRE,
where '\(A\|B\)' works as alternation, unless explicitly asked with
the REG_ENHANCED flag.  "git grep" now can be compiled to do so, to
retain the old behaviour.

* rs/use-enhanced-bre-on-macos:
  use enhanced basic regular expressions on macOS

3 years agoMerge branch 'jk/curl-avoid-deprecated-api' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:49 +0000 (14:15 -0800)]
Merge branch 'jk/curl-avoid-deprecated-api' into maint-2.39

Deal with a few deprecation warning from cURL library.

* jk/curl-avoid-deprecated-api:
  http: support CURLOPT_PROTOCOLS_STR
  http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
  http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT

3 years agoMerge branch 'jk/avoid-redef-system-functions' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:49 +0000 (14:15 -0800)]
Merge branch 'jk/avoid-redef-system-functions' into maint-2.39

The jk/avoid-redef-system-functions-2.30 topic pre-merged for more
recent codebase.

* jk/avoid-redef-system-functions:

3 years agoMerge branch 'jk/avoid-redef-system-functions-2.30' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:47 +0000 (14:15 -0800)]
Merge branch 'jk/avoid-redef-system-functions-2.30' into maint-2.39

Redefining system functions for a few functions did not follow our
usual "implement git_foo() and #define foo(args) git_foo(args)"
pattern, which has broken build for some folks.

* jk/avoid-redef-system-functions-2.30:
  git-compat-util: undefine system names before redeclaring them
  git-compat-util: avoid redefining system function names

3 years agoMerge branch 'tb/ci-concurrency' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:46 +0000 (14:15 -0800)]
Merge branch 'tb/ci-concurrency' into maint-2.39

Avoid unnecessary builds in CI, with settings configured in
ci-config.

* tb/ci-concurrency:
  ci: avoid unnecessary builds

3 years agoMerge branch 'cw/ci-whitespace' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:45 +0000 (14:15 -0800)]
Merge branch 'cw/ci-whitespace' into maint-2.39

CI updates.  We probably want a clean-up to move the long shell
script embedded in yaml file into a separate file, but that can
come later.

* cw/ci-whitespace:
  ci (check-whitespace): move to actions/checkout@v3
  ci (check-whitespace): add links to job output
  ci (check-whitespace): suggest fixes for errors

3 years agoMerge branch 'js/ci-disable-cmake-by-default' into maint-2.39
Junio C Hamano [Tue, 14 Feb 2023 22:15:45 +0000 (14:15 -0800)]
Merge branch 'js/ci-disable-cmake-by-default' into maint-2.39

Stop running win+VS build by default.

* js/ci-disable-cmake-by-default:
  ci: only run win+VS build & tests in Git for Windows' fork

3 years agoSync with Git 2.39.2
Junio C Hamano [Tue, 14 Feb 2023 01:03:24 +0000 (17:03 -0800)]
Sync with Git 2.39.2

3 years agotest-ctype: test iscntrl, ispunct, isxdigit and isprint
René Scharfe [Mon, 13 Feb 2023 21:12:02 +0000 (22:12 +0100)]
test-ctype: test iscntrl, ispunct, isxdigit and isprint

Test the character classifiers added by 1c149ab2dd (ctype: support
iscntrl, ispunct, isxdigit and isprint, 2012-10-15) and 0fcec2ce54
(format-patch: make rfc2047 encoding more strict, 2012-10-18).

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agotest-ctype: test islower and isupper
René Scharfe [Mon, 13 Feb 2023 21:10:45 +0000 (22:10 +0100)]
test-ctype: test islower and isupper

Test the character classifiers added by 43ccdf56ec (ctype: implement
islower/isupper macro, 2012-02-10).

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agotest-ctype: test isascii
René Scharfe [Mon, 13 Feb 2023 21:09:58 +0000 (22:09 +0100)]
test-ctype: test isascii

Test the character classifier added by c2e9364a06 (cleanup: add
isascii(), 2009-03-07).  It returns 1 for NUL as well, which requires
special treatment, as our string-based tester can't find it with
strcmp(3).  Allow NUL to be given as the first character in a class
specification string.  This has the downside of no longer supporting
the empty string, but that's OK since we are not interested in testing
character classes with no members.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agodoc/ls-remote: clarify pattern format
Jeff King [Sat, 11 Feb 2023 04:52:56 +0000 (23:52 -0500)]
doc/ls-remote: clarify pattern format

We document that you can specify "refs" to ls-remote, but we don't
explain any further than that they are "matched" as patterns. Since this
can be interpreted in a lot of ways, let's clarify that they are
tail-matched globs.

Likewise, let's use the word "patterns" to refer to them consistently,
rather than "refs" (both here and in the quick "-h" help), and mention
more explicitly that only one pattern needs to be matched (though there
is also an example already that shows this in action).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agodoc/ls-remote: cosmetic cleanups for examples
Jeff King [Sat, 11 Feb 2023 02:44:13 +0000 (21:44 -0500)]
doc/ls-remote: cosmetic cleanups for examples

There are effectively three example commands and their output, but
they're smushed together with no extra whitespace. Let's add some blank
lines to make them more readable.

Likewise, the first example uses "./." to refer to the path of the
current repository, which is somewhat distracting. That may have been
necessary back in 2005 when it was added, but we can just say "." these
days.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agocache-tree: fix strbuf growth in prime_cache_tree_rec()
René Scharfe [Fri, 10 Feb 2023 20:20:30 +0000 (21:20 +0100)]
cache-tree: fix strbuf growth in prime_cache_tree_rec()

Use size_t to store the original length of the strbuf tree_len, as
that's the correct type.

Don't double the allocated size of the strbuf when adding a subdirectory
name.  And the chance of the trailing slash fitting in the slack left by
strbuf_add() is very high, so stop pre-growing the strbuf at all.

Suggested-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agococci & cache.h: remove "USE_THE_INDEX_COMPATIBILITY_MACROS"
Ævar Arnfjörð Bjarmason [Fri, 10 Feb 2023 10:28:39 +0000 (11:28 +0100)]
cocci & cache.h: remove "USE_THE_INDEX_COMPATIBILITY_MACROS"

Have the last users of "USE_THE_INDEX_COMPATIBILITY_MACROS" use the
underlying *_index() variants instead. Now all previous users of
"USE_THE_INDEX_COMPATIBILITY_MACROS" have been migrated away from the
wrapper macros, and if applicable to use the "USE_THE_INDEX_VARIABLE"
added in [1].

Let's leave the "index-compatibility.cocci" in place, even though it
won't be doing anything on "master". It will benefit any out-of-tree
code that need to use these compatibility macros. We can eventually
remove it.

1. bdafeae0b9c (cache.h & test-tool.h: add & use
   "USE_THE_INDEX_VARIABLE", 2022-11-19)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agocache-tree API: remove redundant update_main_cache_tree()
Ævar Arnfjörð Bjarmason [Fri, 10 Feb 2023 10:28:38 +0000 (11:28 +0100)]
cache-tree API: remove redundant update_main_cache_tree()

Remove the redundant update_main_cache_tree() function, and make its
users use cache_tree_update() instead.

The behavior of populating the "the_index.cache_tree" if it wasn't
present already was needed when this function was introduced in [1],
but it hasn't been needed since [2]; The "cache_tree_update()" will
now lazy-allocate, so there's no need for the wrapper.

1. 996277c5206 (Refactor cache_tree_update idiom from commit,
   2011-12-06)
2. fb0882648e0 (cache-tree: clean up cache_tree_update(), 2021-01-23)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agococci & cache-tree.h: migrate "write_cache_as_tree" to "*_index_*"
Ævar Arnfjörð Bjarmason [Fri, 10 Feb 2023 10:28:37 +0000 (11:28 +0100)]
cocci & cache-tree.h: migrate "write_cache_as_tree" to "*_index_*"

Add a trivial rule for "write_cache_as_tree" to
"index-compatibility.cocci", and apply it. This was left out of the
rules added in 0e6550a2c63 (cocci: add a
index-compatibility.pending.cocci, 2022-11-19) because this
compatibility wrapper lived in "cache-tree.h", not "cache.h"

But it's like the other "USE_THE_INDEX_COMPATIBILITY_MACROS", so let's
migrate it too.

The replacement of "USE_THE_INDEX_COMPATIBILITY_MACROS" here with
"USE_THE_INDEX_VARIABLE" is a manual change on top, now that these
files only use "&the_index", and don't need any compatibility
macros (or functions).

The wrapping of some argument lists is likewise manual, as coccinelle
would otherwise give us overly long argument lists.

The reason for putting the "O" in the cocci rule on the "-" and "+"
lines is because I couldn't get correct whitespacing otherwise,
i.e. I'd end up with "oid,&the_index", not "oid, &the_index".

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agococci & cache.h: apply pending "index_cache_pos" rule
Ævar Arnfjörð Bjarmason [Fri, 10 Feb 2023 10:28:36 +0000 (11:28 +0100)]
cocci & cache.h: apply pending "index_cache_pos" rule

Apply the rule added in [1] to change "cache_name_pos" to
"index_name_pos", which allows us to get rid of another
"USE_THE_INDEX_COMPATIBILITY_MACROS" macro.

The replacement of "USE_THE_INDEX_COMPATIBILITY_MACROS" here with
"USE_THE_INDEX_VARIABLE" is a manual change on top, now that these
files only use "&the_index", and don't need any compatibility
macros (or functions).

1. 0e6550a2c63 (cocci: add a index-compatibility.pending.cocci,
   2022-11-19)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agococci & cache.h: fully apply "active_nr" part of index-compatibility
Ævar Arnfjörð Bjarmason [Fri, 10 Feb 2023 10:28:35 +0000 (11:28 +0100)]
cocci & cache.h: fully apply "active_nr" part of index-compatibility

Apply the "active_nr" part of "index-compatibility.pending.cocci",
which was left out in [1] due to an in-flight conflict. As of [2] the
topic we conflicted with has been merged to "master", so we can fully
apply this rule.

1. dc594180d9e (cocci & cache.h: apply variable section of "pending"
   index-compatibility, 2022-11-19)
2. 9ea1378d046 (Merge branch 'ab/various-leak-fixes', 2022-12-14)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agobuiltin/rm.c: use narrower "USE_THE_INDEX_VARIABLE"
Ævar Arnfjörð Bjarmason [Fri, 10 Feb 2023 10:28:34 +0000 (11:28 +0100)]
builtin/rm.c: use narrower "USE_THE_INDEX_VARIABLE"

Replace the "USE_THE_INDEX_COMPATIBILITY_MACROS" define with the
narrower "USE_THE_INDEX_VARIABLE". This could have been done in
07047d68294 (cocci: apply "pending" index-compatibility to some
"builtin/*.c", 2022-11-19), but I missed it at the time.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoThe fifteenth batch
Junio C Hamano [Thu, 9 Feb 2023 22:40:34 +0000 (14:40 -0800)]
The fifteenth batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ew/free-island-marks'
Junio C Hamano [Thu, 9 Feb 2023 22:40:47 +0000 (14:40 -0800)]
Merge branch 'ew/free-island-marks'

"git pack-objects" learned to release delta-island bitmap data when
it is done using it, saving peak heap memory usage.

* ew/free-island-marks:
  delta-islands: free island_marks and bitmaps

3 years agoMerge branch 'sk/winansi-createthread-fix'
Junio C Hamano [Thu, 9 Feb 2023 22:40:47 +0000 (14:40 -0800)]
Merge branch 'sk/winansi-createthread-fix'

Fix use of CreateThread() API call made early in the windows
start-up code.

* sk/winansi-createthread-fix:
  compat/winansi: check for errors of CreateThread() correctly

3 years agoMerge branch 'hj/remove-msys-support'
Junio C Hamano [Thu, 9 Feb 2023 22:40:47 +0000 (14:40 -0800)]
Merge branch 'hj/remove-msys-support'

Remove support for MSys, which now lags way behind MSys2.

* hj/remove-msys-support:
  mingw: remove msysGit/MSYS1 support
  mingw: remove duplicate `USE_NED_ALLOCATOR` directive

3 years agoMerge branch 'jk/httpd-test-updates'
Junio C Hamano [Thu, 9 Feb 2023 22:40:46 +0000 (14:40 -0800)]
Merge branch 'jk/httpd-test-updates'

Test update.

* jk/httpd-test-updates:
  t/lib-httpd: increase ssl key size to 2048 bits
  t/lib-httpd: drop SSLMutex config
  t/lib-httpd: bump required apache version to 2.4
  t/lib-httpd: bump required apache version to 2.2

3 years agoMerge branch 'gc/index-format-doc'
Junio C Hamano [Thu, 9 Feb 2023 22:40:46 +0000 (14:40 -0800)]
Merge branch 'gc/index-format-doc'

Doc update.

* gc/index-format-doc:
  docs: document zero bits in index "mode"

3 years agoname-rev: fix names by dropping taggerdate workaround
Elijah Newren [Thu, 9 Feb 2023 09:11:46 +0000 (09:11 +0000)]
name-rev: fix names by dropping taggerdate workaround

Commit 7550424804 ("name-rev: include taggerdate in considering the best
name", 2016-04-22) introduced the idea of using taggerdate in the
criteria for selecting the best name.  At the time, a certain commit in
linux.git -- namely, aed06b9cfcab -- was being named by name-rev as
    v4.6-rc1~9^2~792
which, while correct, was very suboptimal.  Some investigation found
that tweaking the MERGE_TRAVERSAL_WEIGHT to lower it could give
alternate answers such as
    v3.13-rc7~9^2~14^2~42
or
    v3.13~5^2~4^2~2^2~1^2~42
A manual solution involving looking at tagger dates came up with
    v3.13-rc1~65^2^2~42
which is much nicer.  That workaround was then implemented in name-rev.

Unfortunately, the taggerdate heuristic is causing bugs.  I was pointed
to a case in a private repository where name-rev reports a name of the
form
    v2022.10.02~86
when users expected to see one of the form
    v2022.10.01~2
(I've modified the names and numbers a bit from the real testcase.)  As
you can probably guess, v2022.10.01 was created after v2022.10.02 (by a
few hours), even though it pointed to an older commit.  While the
condition is unusual even in the repository in question, it is not the
only problematic set of tags in that repository.  The taggerdate logic
is causing problems.

Further, it turns out that this taggerdate heuristic isn't even helping
anymore.  Due to the fix to naming logic in 3656f84278 ("name-rev:
prefer shorter names over following merges", 2021-12-04), we get
improved names without the taggerdate heuristic.  For the original
commit of interest in linux.git, a modern git without the taggerdate
heuristic still provides the same optimal answer of interest, namely:
    v3.13-rc1~65^2^2~42

So, the taggerdate is no longer providing benefit, and it is causing
problems.  Simply get rid of it.

However, note that "taggerdate" as a variable is used to store things
besides a taggerdate these days.  Ever since commit ef1e74065c
("name-rev: favor describing with tags and use committer date to
tiebreak", 2017-03-29), this has been used to store committer dates and
there it is used as a fallback tiebreaker (as opposed to a primary
criteria overriding effective distance calculations).  We do not want to
remove that fallback tiebreaker, so not all instances of "taggerdate"
are removed in this change.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agouserdiff: support Java sealed classes
Andrei Rybak [Tue, 7 Feb 2023 23:42:59 +0000 (00:42 +0100)]
userdiff: support Java sealed classes

A new kind of class was added in Java 17 -- sealed classes.[1]  This
feature includes several new keywords that may appear in a declaration
of a class.  New modifiers before name of the class: "sealed" and
"non-sealed", and a clause after name of the class marked by keyword
"permits".

The current set of regular expressions in userdiff.c already allows the
modifier "sealed" and the "permits" clause, but not the modifier
"non-sealed", which is the first hyphenated keyword in Java.[2]  Allow
hyphen in the words that precede the name of type to match the
"non-sealed" modifier.

In new input file "java-sealed" for the test t4018-diff-funcname.sh, use
a Java code comment for the marker "RIGHT".  This workaround is needed,
because the name of the sealed class appears on the line of code that
has the "ChangeMe" marker.

[1] Detailed description in "JEP 409: Sealed Classes"
    https://openjdk.org/jeps/409
[2] "JEP draft: Keyword Management for the Java Language"
    https://openjdk.org/jeps/8223002

Signed-off-by: Andrei Rybak <rybak.a.v@gmail.com>
Reviewed-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agouserdiff: support Java record types
Andrei Rybak [Tue, 7 Feb 2023 23:42:58 +0000 (00:42 +0100)]
userdiff: support Java record types

A new kind of class was added in Java 16 -- records.[1]  The syntax of
records is similar to regular classes with one important distinction:
the name of the record class is followed by a mandatory list of
components.  The list is enclosed in parentheses, it may be empty, and
it may immediately follow the name of the class or type parameters, if
any, with or without separating whitespace.  For example:

    public record Example(int i, String s) {
    }

    public record WithTypeParameters<A, B>(A a, B b, String s) {
    }

    record SpaceBeforeComponents (String comp1, int comp2) {
    }

Support records in the builtin userdiff pattern for Java.  Add "record"
to the alternatives of keywords for kinds of class.

Allowing matching various possibilities for the type parameters and/or
list of the components of a record has already been covered by the
preceding patch.

[1] detailed description is available in "JEP 395: Records"
    https://openjdk.org/jeps/395

Signed-off-by: Andrei Rybak <rybak.a.v@gmail.com>
Reviewed-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>