]> git.ipfire.org Git - thirdparty/git.git/log
thirdparty/git.git
2 years agorun-command API: remove "env" member, always use "env_array"
Ævar Arnfjörð Bjarmason [Thu, 25 Nov 2021 22:52:24 +0000 (23:52 +0100)] 
run-command API: remove "env" member, always use "env_array"

Remove the "env" member from "struct child_process" in favor of always
using the "env_array". As with the preceding removal of "argv" in
favor of "args" this gets rid of current and future oddities around
memory management at the API boundary (see the amended API docs).

For some of the conversions we can replace patterns like:

    child.env = env->v;

With:

    strvec_pushv(&child.env_array, env->v);

But for others we need to guard the strvec_pushv() with a NULL check,
since we're not passing in the "v" member of a "struct strvec",
e.g. in the case of tmp_objdir_env()'s return value.

Ideally we'd rename the "env_array" member to simply "env" as a
follow-up, since it and "args" are now inconsistent in not having an
"_array" suffix, and seemingly without any good reason, unless we look
at the history of how they came to be.

But as we've currently got 122 in-tree hits for a "git grep env_array"
let's leave that for now (and possibly forever). Doing that rename
would be too disruptive.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agodifftool: use "env_array" to simplify memory management
Ævar Arnfjörð Bjarmason [Thu, 25 Nov 2021 22:52:23 +0000 (23:52 +0100)] 
difftool: use "env_array" to simplify memory management

Amend code added in 03831ef7b50 (difftool: implement the functionality
in the builtin, 2017-01-19) to use the "env_array" in the
run_command.[ch] API. Now we no longer need to manage our own
"index_env" buffer.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorun-command API: remove "argv" member, always use "args"
Ævar Arnfjörð Bjarmason [Thu, 25 Nov 2021 22:52:22 +0000 (23:52 +0100)] 
run-command API: remove "argv" member, always use "args"

Remove the "argv" member from the run-command API, ever since "args"
was added in c460c0ecdca (run-command: store an optional argv_array,
2014-05-15) being able to provide either "argv" or "args" has led to
some confusion and bugs.

If we hadn't gone in that direction and only had an "argv" our
problems wouldn't have been solved either, as noted in [1] (and in the
documentation amended here) it comes with inherent memory management
issues: The caller would have to hang on to the "argv" until the
run-command API was finished. If the "argv" was an argument to main()
this wasn't an issue, but if it it was manually constructed using the
API might be painful.

We also have a recent report[2] of a user of the API segfaulting,
which is a direct result of it being complex to use. This commit
addresses the root cause of that bug.

This change is larger than I'd like, but there's no easy way to avoid
it that wouldn't involve even more verbose intermediate steps. We use
the "argv" as the source of truth over the "args", so we need to
change all parts of run-command.[ch] itself, as well as the trace2
logging at the same time.

The resulting Windows-specific code in start_command() is a bit nasty,
as we're now assigning to a strvec's "v" member, instead of to our own
"argv". There was a suggestion of some alternate approaches in reply
to an earlier version of this commit[3], but let's leave larger a
larger and needless refactoring of this code for now.

1. http://lore.kernel.org/git/YT6BnnXeAWn8BycF@coredump.intra.peff.net
2. https://lore.kernel.org/git/20211120194048.12125-1-ematsumiya@suse.de/
3. https://lore.kernel.org/git/patch-5.5-ea1011f7473-20211122T153605Z-avarab@gmail.com/

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorun-command API users: use strvec_push(), not argv construction
Ævar Arnfjörð Bjarmason [Thu, 25 Nov 2021 22:52:21 +0000 (23:52 +0100)] 
run-command API users: use strvec_push(), not argv construction

Change a pattern of hardcoding an "argv" array size, populating it and
assigning to the "argv" member of "struct child_process" to instead
use "strvec_push()" to add data to the "args" member.

As noted in the preceding commit this moves us further towards being
able to remove the "argv" member in a subsequent commit

These callers could have used strvec_pushl(), but moving to
strvec_push() makes the diff easier to read, and keeps the arguments
aligned as before.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorun-command API users: use strvec_pushl(), not argv construction
Ævar Arnfjörð Bjarmason [Thu, 25 Nov 2021 22:52:20 +0000 (23:52 +0100)] 
run-command API users: use strvec_pushl(), not argv construction

Change a pattern of hardcoding an "argv" array size, populating it and
assigning to the "argv" member of "struct child_process" to instead
use "strvec_pushl()" to add data to the "args" member.

This implements the same behavior as before in fewer lines of code,
and moves us further towards being able to remove the "argv" member in
a subsequent commit.

Since we've entirely removed the "argv" variable(s) we can be sure
that no potential logic errors of the type discussed in a preceding
commit are being introduced here, i.e. ones where the local "argv" was
being modified after the assignment to "struct child_process"'s
"argv".

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorun-command tests: use strvec_pushv(), not argv assignment
Ævar Arnfjörð Bjarmason [Thu, 25 Nov 2021 22:52:19 +0000 (23:52 +0100)] 
run-command tests: use strvec_pushv(), not argv assignment

As in the preceding commit change this API user to use strvec_pushv()
instead of assigning to the "argv" member directly. This leaves us
without test coverage of how the "argv" assignment in this API works,
but we'll be removing it in a subsequent commit.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorun-command API users: use strvec_pushv(), not argv assignment
Ævar Arnfjörð Bjarmason [Thu, 25 Nov 2021 22:52:18 +0000 (23:52 +0100)] 
run-command API users: use strvec_pushv(), not argv assignment

Migrate those run-command API users that assign directly to the "argv"
member to use a strvec_pushv() of "args" instead.

In these cases it did not make sense to further refactor these
callers, e.g. daemon.c could be made to construct the arguments closer
to handle(), but that would require moving the construction from its
cmd_main() and pass "argv" through two intermediate functions.

It would be possible for a change like this to introduce a regression
if we were doing:

      cp.argv = argv;
      argv[1] = "foo";

And changed the code, as is being done here, to:

      strvec_pushv(&cp.args, argv);
      argv[1] = "foo";

But as viewing this change with the "-W" flag reveals none of these
functions modify variable that's being pushed afterwards in a way that
would introduce such a logic error.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoupload-archive: use regular "struct child_process" pattern
Ævar Arnfjörð Bjarmason [Thu, 25 Nov 2021 22:52:17 +0000 (23:52 +0100)] 
upload-archive: use regular "struct child_process" pattern

This pattern added [1] in seems to have been intentional, but since
[2] and [3] we've wanted do initialization of what's now the "struct
strvec" "args" and "env_array" members. Let's not trample on that
initialization here.

1. 1bc01efed17 (upload-archive: use start_command instead of fork,
   2011-11-19)
2. c460c0ecdca (run-command: store an optional argv_array, 2014-05-15)
3. 9a583dc39e (run-command: add env_array, an optional argv_array for
   env, 2014-10-19)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoworktree: stop being overly intimate with run_command() internals
Eric Sunshine [Thu, 25 Nov 2021 22:52:16 +0000 (23:52 +0100)] 
worktree: stop being overly intimate with run_command() internals

add_worktree() reuses a `child_process` for three run_command()
invocations, but to do so, it has overly-intimate knowledge of
run-command.c internals. In particular, it knows that it must reset
child_process::argv to NULL for each subsequent invocation[*] in order
for start_command() to latch the newly-populated child_process::args for
each invocation, even though this behavior is not a part of the
documented API. Beyond having overly-intimate knowledge of run-command.c
internals, the reuse of one `child_process` for three run_command()
invocations smells like an unnecessary micro-optimization. Therefore,
stop sharing one `child_process` and instead use a new one for each
run_command() call.

[*] If child_process::argv is not reset to NULL, then subsequent
run_command() invocations will instead incorrectly access a dangling
pointer to freed memory which had been allocated by child_process::args
on the previous run. This is due to the following code in
start_command():

    if (!cmd->argv)
        cmd->argv = cmd->args.v;

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoSync with 2.34.1
Junio C Hamano [Wed, 24 Nov 2021 18:56:26 +0000 (10:56 -0800)] 
Sync with 2.34.1

2 years agoGit 2.34.1 v2.34.1
Junio C Hamano [Wed, 24 Nov 2021 18:55:13 +0000 (10:55 -0800)] 
Git 2.34.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'jc/save-restore-terminal-revert' into maint
Junio C Hamano [Tue, 23 Nov 2021 22:48:15 +0000 (14:48 -0800)] 
Merge branch 'jc/save-restore-terminal-revert' into maint

Regression fix for 2.34

* jc/save-restore-terminal-revert:
  Revert "editor: save and reset terminal after calling EDITOR"

2 years agoMerge branch 'ds/add-rm-with-sparse-index' into maint
Junio C Hamano [Tue, 23 Nov 2021 22:48:11 +0000 (14:48 -0800)] 
Merge branch 'ds/add-rm-with-sparse-index' into maint

Regression fix for 2.34

* ds/add-rm-with-sparse-index:
  dir: revert "dir: select directories correctly"

2 years agoMerge branch 'ab/update-submitting-patches' into maint
Junio C Hamano [Tue, 23 Nov 2021 22:48:08 +0000 (14:48 -0800)] 
Merge branch 'ab/update-submitting-patches' into maint

Doc fix.

* ab/update-submitting-patches:
  SubmittingPatches: fix Asciidoc syntax in "GitHub CI" section

2 years agoMerge branch 'ev/pull-already-up-to-date-is-noop' into maint
Junio C Hamano [Tue, 23 Nov 2021 22:48:04 +0000 (14:48 -0800)] 
Merge branch 'ev/pull-already-up-to-date-is-noop' into maint

"git pull" with any strategy when the other side is behind us
should succeed as it is a no-op, but doesn't.

* ev/pull-already-up-to-date-is-noop:
  pull: should be noop when already-up-to-date

2 years agoMerge branch 'hm/paint-hits-in-log-grep' into maint
Junio C Hamano [Tue, 23 Nov 2021 22:48:00 +0000 (14:48 -0800)] 
Merge branch 'hm/paint-hits-in-log-grep' into maint

"git grep" looking in a blob that has non-UTF8 payload was
completely broken when linked with versions of PCREv2 library older
than 10.34 in the latest release.

* hm/paint-hits-in-log-grep:
  Revert "grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data"

2 years agoA bit more regression fixes
Junio C Hamano [Tue, 23 Nov 2021 02:39:53 +0000 (18:39 -0800)] 
A bit more regression fixes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'jc/save-restore-terminal-revert'
Junio C Hamano [Tue, 23 Nov 2021 02:40:11 +0000 (18:40 -0800)] 
Merge branch 'jc/save-restore-terminal-revert'

Regression fix for 2.34

* jc/save-restore-terminal-revert:
  Revert "editor: save and reset terminal after calling EDITOR"

2 years agoMerge branch 'ds/add-rm-with-sparse-index'
Junio C Hamano [Tue, 23 Nov 2021 02:40:10 +0000 (18:40 -0800)] 
Merge branch 'ds/add-rm-with-sparse-index'

Regression fix for 2.34

* ds/add-rm-with-sparse-index:
  dir: revert "dir: select directories correctly"

2 years agoRevert "editor: save and reset terminal after calling EDITOR"
Junio C Hamano [Mon, 22 Nov 2021 23:04:20 +0000 (15:04 -0800)] 
Revert "editor: save and reset terminal after calling EDITOR"

This reverts commit 3d411afabc9a96f41d47c07d6af6edda3d29ec92,
blindly opening /dev/tty and calling tcsetattr() seems to be causing
problems.

cf. https://bugs.eclipse.org/bugs/show_bug.cgi?id=577358
cf. https://lore.kernel.org/git/04ab7301-ea34-476c-eae4-4044fef74b91@gmail.com/

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agodir: revert "dir: select directories correctly"
Derrick Stolee [Fri, 19 Nov 2021 14:13:49 +0000 (09:13 -0500)] 
dir: revert "dir: select directories correctly"

This reverts commit f6526728f950cacfd5b5e42bcc65f2c47f3da654.

The change in f652672 (dir: select directories correctly, 2021-09-24)
caused a regression in directory-based matches with non-cone-mode
patterns, especially for .gitignore patterns. A test is included to
prevent this regression in the future.

The commit ed495847 (dir: fix pattern matching on dirs, 2021-09-24) was
reverted in 5ceb663 (dir: fix directory-matching bug, 2021-11-02) for
similar reasons. Neither commit changed tests, and tests added later in
the series continue to pass when these commits are reverted.

Reported-by: Danial Alihosseini <danial.alihosseini@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years ago0th batch for early fixes
Junio C Hamano [Mon, 22 Nov 2021 05:55:56 +0000 (21:55 -0800)] 
0th batch for early fixes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'ab/update-submitting-patches'
Junio C Hamano [Mon, 22 Nov 2021 05:57:04 +0000 (21:57 -0800)] 
Merge branch 'ab/update-submitting-patches'

Doc fix.

* ab/update-submitting-patches:
  SubmittingPatches: fix Asciidoc syntax in "GitHub CI" section

2 years agoMerge branch 'ev/pull-already-up-to-date-is-noop'
Junio C Hamano [Mon, 22 Nov 2021 05:57:04 +0000 (21:57 -0800)] 
Merge branch 'ev/pull-already-up-to-date-is-noop'

"git pull" with any strategy when the other side is behind us
should succeed as it is a no-op, but doesn't.

* ev/pull-already-up-to-date-is-noop:
  pull: should be noop when already-up-to-date

2 years agoMerge branch 'hm/paint-hits-in-log-grep'
Junio C Hamano [Mon, 22 Nov 2021 05:57:03 +0000 (21:57 -0800)] 
Merge branch 'hm/paint-hits-in-log-grep'

"git grep" looking in a blob that has non-UTF8 payload was
completely broken when linked with certain versions of PCREv2
library in the latest release.

* hm/paint-hits-in-log-grep:
  Revert "grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data"

2 years agoRevert "grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data"
Junio C Hamano [Fri, 19 Nov 2021 17:06:36 +0000 (09:06 -0800)] 
Revert "grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data"

This reverts commit ae39ba431ab861548eb60b4bd2e1d8b8813db76f, as it
breaks "grep" when looking for a string in non UTF-8 haystack, when
linked with certain versions of PCREv2 library.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agopull: should be noop when already-up-to-date
Erwin Villejo [Wed, 17 Nov 2021 07:55:50 +0000 (07:55 +0000)] 
pull: should be noop when already-up-to-date

The already-up-to-date pull bug was fixed for --ff-only but it did not
include the case where --ff or --ff-only are not specified. This updates
the --ff-only fix to include the case where --ff or --ff-only are not
specified in command line flags or config.

Signed-off-by: Erwin Villejo <erwin.villejo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoGit 2.34 v2.34.0
Junio C Hamano [Mon, 15 Nov 2021 06:50:52 +0000 (22:50 -0800)] 
Git 2.34

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge tag 'l10n-2.34.0-rnd3.1' of git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 15 Nov 2021 05:45:40 +0000 (21:45 -0800)] 
Merge tag 'l10n-2.34.0-rnd3.1' of git://github.com/git-l10n/git-po

l10n-2.34.0-rnd3.1

* tag 'l10n-2.34.0-rnd3.1' of git://github.com/git-l10n/git-po: (38 commits)
  l10n: pl: 2.34.0 round 3
  l10n: it: fix typos found by git-po-helper
  l10n: ko: fix typos found by git-po-helper
  l10n: Update Catalan translation
  l10n: po-id for 2.34 (round 3)
  l10n: bg.po: Updated Bulgarian translation (5211t)
  l10n: de.po: Update German translation for Git v2.34.0
  l10n: sv.po: Update Swedish translation (5211t0f0)
  l10n: vi(5211t): Translation for v2.34.0 rd3
  l10n: zh_TW.po: v2.34.0 round 3 (0 untranslated)
  l10n: fr: v2.34.0 rnd 3
  l10n: tr: v2.34.0 round 3
  l10n: zh_CN: v2.34.0 round 3
  l10n: git.pot: v2.34.0 round 3 (1 new)
  l10n: pl: 2.34.0 round 2
  l10n: vi(5210t): Translation for v2.34.0 rd2
  l10n: es: 2.34.0 round 2
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (5210t)
  l10n: fr: v2.34.0 round 2
  ...

2 years agol10n: pl: 2.34.0 round 3
Arusekk [Sun, 14 Nov 2021 14:19:13 +0000 (15:19 +0100)] 
l10n: pl: 2.34.0 round 3

Signed-off-by: Arusekk <arek_koz@o2.pl>
2 years agol10n: it: fix typos found by git-po-helper
Jiang Xin [Sun, 14 Nov 2021 11:40:41 +0000 (19:40 +0800)] 
l10n: it: fix typos found by git-po-helper

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2 years agoSubmittingPatches: fix Asciidoc syntax in "GitHub CI" section
Philippe Blain [Sat, 13 Nov 2021 20:38:05 +0000 (20:38 +0000)] 
SubmittingPatches: fix Asciidoc syntax in "GitHub CI" section

A superfluous ']' was added to the title of the GitHub CI section in
f003a91f5c (SubmittingPatches: replace discussion of Travis with GitHub
Actions, 2021-07-22). Remove it.

While at it, format the URL for a GitHub user's workflow runs of Git
between backticks, since if not Asciidoc formats only the first part,
"https://github.com/<Your", as a link, which is not very useful.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: ko: fix typos found by git-po-helper
Jiang Xin [Thu, 11 Nov 2021 00:54:16 +0000 (08:54 +0800)] 
l10n: ko: fix typos found by git-po-helper

When checking typos in file "po/ko.po", "git-po-helper" reports lots of
false positives because there are no spaces between ASCII and Korean
characters. After applied commit adee197 "(dict: add smudge table for
Korean language, 2021-11-11)" of "git-l10n/git-po-helper" to suppress
these false positives, some easy-to-fix typos are found and fixed.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2 years agol10n: Update Catalan translation
Jordi Mas [Sat, 13 Nov 2021 15:35:53 +0000 (16:35 +0100)] 
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
2 years agoMerge branch 'po-id' of github.com:bagasme/git-po
Jiang Xin [Sat, 13 Nov 2021 06:42:30 +0000 (14:42 +0800)] 
Merge branch 'po-id' of github.com:bagasme/git-po

* 'po-id' of github.com:bagasme/git-po:
  l10n: po-id for 2.34 (round 3)

2 years agol10n: po-id for 2.34 (round 3)
Bagas Sanjaya [Thu, 11 Nov 2021 07:43:22 +0000 (14:43 +0700)] 
l10n: po-id for 2.34 (round 3)

  - Translate following new components:
    * merge.c
    * rebase-interactive.c
    * rebase.c
    * midx.c
  - Clean up obsolete translations

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
2 years agoMerge branch 'master' of github.com:ruester/git-po-de
Jiang Xin [Sat, 13 Nov 2021 01:27:58 +0000 (09:27 +0800)] 
Merge branch 'master' of github.com:ruester/git-po-de

* 'master' of github.com:ruester/git-po-de:
  l10n: de.po: Update German translation for Git v2.34.0

2 years agoMerge branch 'js/trace2-raise-format-version'
Junio C Hamano [Fri, 12 Nov 2021 23:29:25 +0000 (15:29 -0800)] 
Merge branch 'js/trace2-raise-format-version'

When we added a new event type to trace2 event stream, we forgot to
raise the format version number, which has been corrected.

* js/trace2-raise-format-version:
  trace2: increment event format version

2 years agoMerge branch 'ab/fsck-unexpected-type'
Junio C Hamano [Fri, 12 Nov 2021 23:29:25 +0000 (15:29 -0800)] 
Merge branch 'ab/fsck-unexpected-type'

Regression fix.

* ab/fsck-unexpected-type:
  object-file: free(*contents) only in read_loose_object() caller
  object-file: fix SEGV on free() regression in v2.34.0-rc2

2 years agoMerge branch 'ps/connectivity-optim'
Junio C Hamano [Fri, 12 Nov 2021 23:29:24 +0000 (15:29 -0800)] 
Merge branch 'ps/connectivity-optim'

Regression fix.

* ps/connectivity-optim:
  Revert "connected: do not sort input revisions"

2 years agol10n: bg.po: Updated Bulgarian translation (5211t)
Alexander Shopov [Fri, 12 Nov 2021 07:00:54 +0000 (08:00 +0100)] 
l10n: bg.po: Updated Bulgarian translation (5211t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2 years agol10n: de.po: Update German translation for Git v2.34.0
Matthias Rüster [Sun, 7 Nov 2021 17:07:34 +0000 (18:07 +0100)] 
l10n: de.po: Update German translation for Git v2.34.0

Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
Reviewed-by: Ralf Thielow <ralf.thielow@gmail.com>
Reviewed-by: Phillip Szelat <phillip.szelat@gmail.com>
2 years agotrace2: increment event format version
Josh Steadmon [Thu, 11 Nov 2021 22:34:25 +0000 (14:34 -0800)] 
trace2: increment event format version

In 64bc752 (trace2: add trace2_child_ready() to report on background
children, 2021-09-20), we added a new "child_ready" event. In
Documentation/technical/api-trace2.txt, we promise that adding a new
event type will result in incrementing the trace2 event format version
number, but this was not done. Correct this in code & docs.

Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: sv.po: Update Swedish translation (5211t0f0)
Peter Krefting [Thu, 11 Nov 2021 22:22:48 +0000 (23:22 +0100)] 
l10n: sv.po: Update Swedish translation (5211t0f0)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2 years agoobject-file: free(*contents) only in read_loose_object() caller
Ævar Arnfjörð Bjarmason [Thu, 11 Nov 2021 05:18:56 +0000 (06:18 +0100)] 
object-file: free(*contents) only in read_loose_object() caller

In the preceding commit a free() of uninitialized memory regression in
96e41f58fe1 (fsck: report invalid object type-path combinations,
2021-10-01) was fixed, but we'd still have an issue with leaking
memory from fsck_loose(). Let's fix that issue too.

That issue was introduced in my 31deb28f5e0 (fsck: don't hard die on
invalid object types, 2021-10-01). It can be reproduced under
SANITIZE=leak with the test I added in 093fffdfbec (fsck tests: add
test for fsck-ing an unknown type, 2021-10-01):

    ./t1450-fsck.sh --run=84 -vixd

In some sense it's not a problem, we lost the same amount of memory in
terms of things malloc'd and not free'd. It just moved from the "still
reachable" to "definitely lost" column in valgrind(1) nomenclature[1],
since we'd have die()'d before.

But now that we don't hard die() anymore in the library let's properly
free() it. Doing so makes this code much easier to follow, since we'll
now have one function owning the freeing of the "contents" variable,
not two.

For context on that memory management pattern the read_loose_object()
function was added in f6371f92104 (sha1_file: add read_loose_object()
function, 2017-01-13) and subsequently used in c68b489e564 (fsck:
parse loose object paths directly, 2017-01-13). The pattern of it
being the task of both sides to free() the memory has been there in
this form since its inception.

1. https://valgrind.org/docs/manual/mc-manual.html#mc-manual.leaks

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoRevert "connected: do not sort input revisions"
Junio C Hamano [Thu, 11 Nov 2021 20:34:41 +0000 (12:34 -0800)] 
Revert "connected: do not sort input revisions"

This reverts commit f45022dc2fd692fd024f2eb41a86a66f19013d43,
as this is like breakage in the traversal more likely.  In a
history with 10 single strand of pearls,

   1-->2-->3--...->7-->8-->9-->10

asking "rev-list --unsorted-input 1 10 --not 9 8 7 6 5 4" fails to
paint the bottom 1 uninteresting as the traversal stops, without
completing the propagation of uninteresting bit starting at 4 down
through 3 and 2 to 1.

2 years agoobject-file: fix SEGV on free() regression in v2.34.0-rc2
Ævar Arnfjörð Bjarmason [Thu, 11 Nov 2021 05:18:55 +0000 (06:18 +0100)] 
object-file: fix SEGV on free() regression in v2.34.0-rc2

Fix a regression introduced in my 96e41f58fe1 (fsck: report invalid
object type-path combinations, 2021-10-01). When fsck-ing blobs larger
than core.bigFileThreshold, we'd free() a pointer to uninitialized
memory.

This issue would have been caught by SANITIZE=address, but since it
involves core.bigFileThreshold, none of the existing tests in our test
suite covered it.

Running them with the "big_file_threshold" in "environment.c" changed
to say "6" would have shown this failure, but let's add a dedicated
test for this scenario based on Han Xin's report[1].

The bug was introduced between v9 and v10[2] of the fsck series merged
in 061a21d36d8 (Merge branch 'ab/fsck-unexpected-type', 2021-10-25).

1. https://lore.kernel.org/git/20211111030302.75694-1-hanxin.hx@alibaba-inc.com/
2. https://lore.kernel.org/git/cover-v10-00.17-00000000000-20211001T091051Z-avarab@gmail.com/

Reported-by: Han Xin <chiyutianyi@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: vi(5211t): Translation for v2.34.0 rd3
Tran Ngoc Quan [Thu, 11 Nov 2021 06:19:34 +0000 (13:19 +0700)] 
l10n: vi(5211t): Translation for v2.34.0 rd3

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2 years agoMerge branch 'l10n/zh_TW/211111' of github.com:l10n-tw/git-po
Jiang Xin [Thu, 11 Nov 2021 00:28:26 +0000 (08:28 +0800)] 
Merge branch 'l10n/zh_TW/211111' of github.com:l10n-tw/git-po

* 'l10n/zh_TW/211111' of github.com:l10n-tw/git-po:
  l10n: zh_TW.po: v2.34.0 round 3 (0 untranslated)

2 years agoMerge branch 'fr_v2.34.0_rnd3' of github.com:jnavila/git
Jiang Xin [Thu, 11 Nov 2021 00:27:49 +0000 (08:27 +0800)] 
Merge branch 'fr_v2.34.0_rnd3' of github.com:jnavila/git

* 'fr_v2.34.0_rnd3' of github.com:jnavila/git:
  l10n: fr: v2.34.0 rnd 3

2 years agoMerge branch 'tr-2-34-r3' of github.com:bitigchi/git-po
Jiang Xin [Thu, 11 Nov 2021 00:26:54 +0000 (08:26 +0800)] 
Merge branch 'tr-2-34-r3' of github.com:bitigchi/git-po

* 'tr-2-34-r3' of github.com:bitigchi/git-po:
  l10n: tr: v2.34.0 round 3

2 years agoA few hotfixes
Junio C Hamano [Wed, 10 Nov 2021 22:59:51 +0000 (14:59 -0800)] 
A few hotfixes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'jk/ssh-signing-fix'
Junio C Hamano [Wed, 10 Nov 2021 23:01:21 +0000 (15:01 -0800)] 
Merge branch 'jk/ssh-signing-fix'

Reject OpenSSH 8.7 whose "ssh-keygen -Y find-principals" is
unusable from running the ssh signature tests.

* jk/ssh-signing-fix:
  t/lib-gpg: avoid broken versions of ssh-keygen

2 years agoMerge branch 'js/simple-ipc-cygwin-socket-fix'
Junio C Hamano [Wed, 10 Nov 2021 23:01:20 +0000 (15:01 -0800)] 
Merge branch 'js/simple-ipc-cygwin-socket-fix'

The way Cygwin emulates a unix-domain socket, on top of which the
simple-ipc mechanism is implemented, can race with the program on
the other side that wants to use the socket, and briefly make it
appear as a regular file before lstat(2) starts reporting it as a
socket.  We now have a workaround on the side that connects to a
unix domain socket.

* js/simple-ipc-cygwin-socket-fix:
  simple-ipc: work around issues with Cygwin's Unix socket emulation

2 years agoMerge branch 'ds/no-usable-cron-on-macos'
Junio C Hamano [Wed, 10 Nov 2021 23:01:20 +0000 (15:01 -0800)] 
Merge branch 'ds/no-usable-cron-on-macos'

"git maintenance run" learned to use system supplied scheduler
backend, but cron on macOS turns out to be unusable for this
purpose.

* ds/no-usable-cron-on-macos:
  maintenance: disable cron on macOS

2 years agoMerge branch 'jc/fix-pull-ff-only-when-already-up-to-date'
Junio C Hamano [Wed, 10 Nov 2021 23:01:19 +0000 (15:01 -0800)] 
Merge branch 'jc/fix-pull-ff-only-when-already-up-to-date'

"git pull --ff-only" and "git pull --rebase --ff-only" should make
it a no-op to attempt pulling from a remote that is behind us, but
instead the command errored out by saying it was impossible to
fast-forward, which may technically be true, but not a useful thing
to diagnose as an error.  This has been corrected.

* jc/fix-pull-ff-only-when-already-up-to-date:
  pull: --ff-only should make it a noop when already-up-to-date

2 years agol10n: zh_TW.po: v2.34.0 round 3 (0 untranslated)
Yi-Jyun Pan [Wed, 10 Nov 2021 22:43:41 +0000 (06:43 +0800)] 
l10n: zh_TW.po: v2.34.0 round 3 (0 untranslated)

Signed-off-by: Yi-Jyun Pan <pan93412@gmail.com>
2 years agot/lib-gpg: avoid broken versions of ssh-keygen
Jeff King [Wed, 10 Nov 2021 06:00:47 +0000 (01:00 -0500)] 
t/lib-gpg: avoid broken versions of ssh-keygen

The "-Y find-principals" option of ssh-keygen seems to be broken in
Debian's openssh-client 1:8.7p1-1, whereas it works fine in 1:8.4p1-5.
This causes several failures for GPGSSH tests. We fulfill the
prerequisite because generating the keys works fine, but actually
verifying a signature causes results ranging from bogus results to
ssh-keygen segfaulting.

We can find the broken version during the prereq check by feeding it
empty input. This should result in it complaining to stderr, but in the
broken version it triggers the segfault, causing the GPGSSH tests to be
skipped.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: fr: v2.34.0 rnd 3
Jean-Noël Avila [Wed, 10 Nov 2021 21:01:57 +0000 (22:01 +0100)] 
l10n: fr: v2.34.0 rnd 3

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2 years agomaintenance: disable cron on macOS
Derrick Stolee [Wed, 10 Nov 2021 18:35:59 +0000 (18:35 +0000)] 
maintenance: disable cron on macOS

In eba1ba9 (maintenance: `git maintenance run` learned
`--scheduler=<scheduler>`, 2021-09-04), we introduced the ability to
specify a scheduler explicitly. This led to some extra checks around
whether an alternative scheduler was available. This added the
functionality of removing background maintenance from schedulers other
than the one selected.

On macOS, cron is technically available, but running 'crontab' triggers
a UI prompt asking for special permissions. This is the major reason why
launchctl is used as the default scheduler. The is_crontab_available()
method triggers this UI prompt, causing user disruption.

Remove this disruption by using an #ifdef to prevent running crontab
this way on macOS. This has the unfortunate downside that if a user
manually selects cron via the '--scheduler' option, then adjusting the
scheduler later will not remove the schedule from cron. The
'--scheduler' option ignores the is_available checks, which is how we
can get into this situation.

Extract the new check_crontab_process() method to avoid making the
'child' variable unused on macOS. The method is marked MAYBE_UNUSED
because it has no callers on macOS.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: tr: v2.34.0 round 3
Emir Sarı [Wed, 10 Nov 2021 18:21:28 +0000 (21:21 +0300)] 
l10n: tr: v2.34.0 round 3

Signed-off-by: Emir Sarı <bitigchi@me.com>
2 years agosimple-ipc: work around issues with Cygwin's Unix socket emulation
Johannes Schindelin [Wed, 10 Nov 2021 11:09:10 +0000 (11:09 +0000)] 
simple-ipc: work around issues with Cygwin's Unix socket emulation

Cygwin emulates Unix sockets by writing files with custom contents and
then marking them as system files.

The tricky problem is that while the file is written and its `system`
bit is set, it is still identified as a file. This caused test failures
when Git is too fast looking for the Unix sockets and then complains
that there is a plain file in the way.

Let's work around this by adding a delayed retry loop, specifically for
Cygwin.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Tested-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: zh_CN: v2.34.0 round 3
Fangyi Zhou [Wed, 10 Nov 2021 12:29:09 +0000 (12:29 +0000)] 
l10n: zh_CN: v2.34.0 round 3

Signed-off-by: Fangyi Zhou <me@fangyi.io>
2 years agoMerge branch 'master' of github.com:alshopov/git-po
Jiang Xin [Wed, 10 Nov 2021 02:18:44 +0000 (10:18 +0800)] 
Merge branch 'master' of github.com:alshopov/git-po

* 'master' of github.com:alshopov/git-po:
  l10n: bg.po: Updated Bulgarian translation (5210t)

2 years agol10n: git.pot: v2.34.0 round 3 (1 new)
Jiang Xin [Wed, 10 Nov 2021 00:56:22 +0000 (08:56 +0800)] 
l10n: git.pot: v2.34.0 round 3 (1 new)

Generate po/git.pot from v2.34.0-rc2 for git v2.34.0 l10n round 3.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2 years agoMerge branch 'master' of github.com:git/git
Jiang Xin [Wed, 10 Nov 2021 00:55:14 +0000 (08:55 +0800)] 
Merge branch 'master' of github.com:git/git

* 'master' of github.com:git/git:
  Git 2.34-rc2
  parse-options.[ch]: revert use of "enum" for parse_options()
  t/lib-git.sh: fix ACL-related permissions failure
  A few fixes before -rc2
  async_die_is_recursing: work around GCC v11.x issue on Fedora
  Document positive variant of commit and merge option "--no-verify"
  pull: honor --no-verify and do not call the commit-msg hook
  http-backend: remove a duplicated code branch

2 years agoGit 2.34-rc2 v2.34.0-rc2
Junio C Hamano [Tue, 9 Nov 2021 21:19:51 +0000 (13:19 -0800)] 
Git 2.34-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'ab/parse-options-cleanup'
Junio C Hamano [Tue, 9 Nov 2021 21:19:06 +0000 (13:19 -0800)] 
Merge branch 'ab/parse-options-cleanup'

Last minute fix to the update already in 'master'.

* ab/parse-options-cleanup:
  parse-options.[ch]: revert use of "enum" for parse_options()

2 years agoMerge branch 'ad/ssh-signing-testfix'
Junio C Hamano [Tue, 9 Nov 2021 21:19:06 +0000 (13:19 -0800)] 
Merge branch 'ad/ssh-signing-testfix'

Fix ssh-signing test to work on a platform where the default ACL is
overly loose to upset OpenSSH (reported on an installation of Cygwin).

* ad/ssh-signing-testfix:
  t/lib-git.sh: fix ACL-related permissions failure

2 years agoparse-options.[ch]: revert use of "enum" for parse_options()
Ævar Arnfjörð Bjarmason [Tue, 9 Nov 2021 11:04:43 +0000 (12:04 +0100)] 
parse-options.[ch]: revert use of "enum" for parse_options()

Revert the parse_options() prototype change in my recent
352e761388b (parse-options.[ch]: consistently use "enum
parse_opt_result", 2021-10-08) was incorrect. The parse_options()
function returns the number of argc elements that haven't been
processed, not "enum parse_opt_result".

Reported-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: pl: 2.34.0 round 2
Arusekk [Tue, 9 Nov 2021 13:48:08 +0000 (14:48 +0100)] 
l10n: pl: 2.34.0 round 2

Signed-off-by: Arusekk <arek_koz@o2.pl>
2 years agol10n: vi(5210t): Translation for v2.34.0 rd2
Tran Ngoc Quan [Mon, 8 Nov 2021 01:39:44 +0000 (08:39 +0700)] 
l10n: vi(5210t): Translation for v2.34.0 rd2

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2 years agol10n: es: 2.34.0 round 2
Christopher Diaz Riveros [Sun, 10 Oct 2021 11:28:14 +0000 (13:28 +0200)] 
l10n: es: 2.34.0 round 2

Signed-off-by: Christopher Diaz Riveros <christopher.diaz.riv@gmail.com>
Signed-off-by: Omar Olivares <omar@olivares.cl>
Signed-off-by: Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@fastmail.net>
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
2 years agol10n: Update Catalan translation
Jordi Mas [Sat, 6 Nov 2021 12:43:08 +0000 (13:43 +0100)] 
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
2 years agol10n: bg.po: Updated Bulgarian translation (5210t)
Alexander Shopov [Sat, 6 Nov 2021 10:31:37 +0000 (11:31 +0100)] 
l10n: bg.po: Updated Bulgarian translation (5210t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2 years agoMerge branch 'pt-PT' of github.com:git-l10n-pt-PT/git-po
Jiang Xin [Sat, 6 Nov 2021 04:32:08 +0000 (12:32 +0800)] 
Merge branch 'pt-PT' of github.com:git-l10n-pt-PT/git-po

* 'pt-PT' of github.com:git-l10n-pt-PT/git-po:
  l10n: pt_PT: cleaning duplicate translations (#2)

2 years agoMerge branch 'l10n/zh_TW/211104' of github.com:l10n-tw/git-po
Jiang Xin [Sat, 6 Nov 2021 04:16:02 +0000 (12:16 +0800)] 
Merge branch 'l10n/zh_TW/211104' of github.com:l10n-tw/git-po

* 'l10n/zh_TW/211104' of github.com:l10n-tw/git-po:
  l10n: zh_TW.po: v2.34.0 round 2 (0 untranslated)

2 years agot/lib-git.sh: fix ACL-related permissions failure
Adam Dinwoodie [Fri, 5 Nov 2021 19:31:06 +0000 (19:31 +0000)] 
t/lib-git.sh: fix ACL-related permissions failure

As well as checking that the relevant functionality is available, the
GPGSSH prerequisite check creates the SSH keys that are used by the test
functions it gates.  If these keys are created in a directory that
has a default Access Control List, the key files can inherit those
permissions.

This can result in a scenario where the private keys are created
successfully, so the prerequisite check passes and the tests are run,
but the key files have permissions that are too permissive, meaning
OpenSSH will refuse to load them and the tests will fail.

To avoid this happening, before creating the keys, clear any default ACL
set on the directory that will contain them.  This step allowed to fail;
if setfacl isn't present, that's a very likely indicator that the
filesystem in question simply doesn't support default ACLs.

Helped-by: Fabian Stelzer <fs@gigacodes.de>
Signed-off-by: Adam Dinwoodie <adam@dinwoodie.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: fr: v2.34.0 round 2
Jean-Noël Avila [Fri, 5 Nov 2021 19:41:17 +0000 (20:41 +0100)] 
l10n: fr: v2.34.0 round 2

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2 years agoMerge branch 'po-id' of github.com:bagasme/git-po
Jiang Xin [Fri, 5 Nov 2021 11:48:09 +0000 (19:48 +0800)] 
Merge branch 'po-id' of github.com:bagasme/git-po

* 'po-id' of github.com:bagasme/git-po:
  l10n: po-id for 2.34 (round 2)

2 years agol10n: po-id for 2.34 (round 2)
Bagas Sanjaya [Fri, 5 Nov 2021 08:24:29 +0000 (15:24 +0700)] 
l10n: po-id for 2.34 (round 2)

Translate following new components:

  * gpg-interface.c
  * send-pack.c
  * fetch-pack.c
  * upload-pack.c

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
2 years agol10n: zh_TW.po: v2.34.0 round 2 (0 untranslated)
pan93412 [Thu, 4 Nov 2021 12:09:26 +0000 (20:09 +0800)] 
l10n: zh_TW.po: v2.34.0 round 2 (0 untranslated)

Signed-off-by: pan93412 <pan93412@gmail.com>
2 years agoMerge branch 'master' of github.com:nafmo/git-l10n-sv
Jiang Xin [Fri, 5 Nov 2021 00:18:57 +0000 (08:18 +0800)] 
Merge branch 'master' of github.com:nafmo/git-l10n-sv

* 'master' of github.com:nafmo/git-l10n-sv:
  l10n: sv.po: Update Swedish translation (5210t0f0u)

2 years agoMerge branch 'fz/po-zh_CN' of github.com:fangyi-zhou/git-po
Jiang Xin [Fri, 5 Nov 2021 00:17:50 +0000 (08:17 +0800)] 
Merge branch 'fz/po-zh_CN' of github.com:fangyi-zhou/git-po

* 'fz/po-zh_CN' of github.com:fangyi-zhou/git-po:
  l10n: zh_CN: 2.34.0 Round 2

2 years agol10n: sv.po: Update Swedish translation (5210t0f0u)
Peter Krefting [Mon, 1 Nov 2021 16:40:48 +0000 (17:40 +0100)] 
l10n: sv.po: Update Swedish translation (5210t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2 years agoA few fixes before -rc2
Junio C Hamano [Thu, 4 Nov 2021 19:24:46 +0000 (12:24 -0700)] 
A few fixes before -rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoSync with maint
Junio C Hamano [Thu, 4 Nov 2021 19:24:40 +0000 (12:24 -0700)] 
Sync with maint

2 years agoMerge branch 'vd/pthread-setspecific-g11-fix' into maint
Junio C Hamano [Thu, 4 Nov 2021 19:24:20 +0000 (12:24 -0700)] 
Merge branch 'vd/pthread-setspecific-g11-fix' into maint

One CI task based on Fedora image noticed a not-quite-kosher
consturct recently, which has been corrected.

* vd/pthread-setspecific-g11-fix:
  async_die_is_recursing: work around GCC v11.x issue on Fedora

2 years agoMerge branch 'ma/doc-git-version' into maint
Junio C Hamano [Thu, 4 Nov 2021 19:22:10 +0000 (12:22 -0700)] 
Merge branch 'ma/doc-git-version' into maint

Typofix.

* ma/doc-git-version:
  git.txt: fix typo

2 years agoMerge branch 'pw/rebase-r-fixes' into maint
Junio C Hamano [Thu, 4 Nov 2021 19:20:14 +0000 (12:20 -0700)] 
Merge branch 'pw/rebase-r-fixes' into maint

Regression fix.

* pw/rebase-r-fixes:
  rebase -i: fix rewording with --committer-date-is-author-date

2 years agoMerge branch 'jk/log-warn-on-bogus-encoding' into maint
Junio C Hamano [Thu, 4 Nov 2021 19:20:13 +0000 (12:20 -0700)] 
Merge branch 'jk/log-warn-on-bogus-encoding' into maint

Squelch over-eager warning message added during this cycle.

* jk/log-warn-on-bogus-encoding:
  log: document --encoding behavior on iconv() failure
  Revert "logmsg_reencode(): warn when iconv() fails"

2 years agoMerge branch 'vd/pthread-setspecific-g11-fix'
Junio C Hamano [Thu, 4 Nov 2021 19:07:47 +0000 (12:07 -0700)] 
Merge branch 'vd/pthread-setspecific-g11-fix'

One CI task based on Fedora image noticed a not-quite-kosher
consturct recently, which has been corrected.

* vd/pthread-setspecific-g11-fix:
  async_die_is_recursing: work around GCC v11.x issue on Fedora

2 years agoMerge branch 'rd/http-backend-code-simplification'
Junio C Hamano [Thu, 4 Nov 2021 19:07:46 +0000 (12:07 -0700)] 
Merge branch 'rd/http-backend-code-simplification'

Code simplification.

* rd/http-backend-code-simplification:
  http-backend: remove a duplicated code branch

2 years agoMerge branch 'ar/no-verify-doc'
Junio C Hamano [Thu, 4 Nov 2021 19:07:46 +0000 (12:07 -0700)] 
Merge branch 'ar/no-verify-doc'

Doc update.

* ar/no-verify-doc:
  Document positive variant of commit and merge option "--no-verify"

2 years agoMerge branch 'ar/fix-git-pull-no-verify'
Junio C Hamano [Thu, 4 Nov 2021 19:07:46 +0000 (12:07 -0700)] 
Merge branch 'ar/fix-git-pull-no-verify'

"git pull --no-verify" did not affect the underlying "git merge".

* ar/fix-git-pull-no-verify:
  pull: honor --no-verify and do not call the commit-msg hook

2 years agol10n: zh_CN: 2.34.0 Round 2
Fangyi Zhou [Thu, 4 Nov 2021 11:02:05 +0000 (11:02 +0000)] 
l10n: zh_CN: 2.34.0 Round 2

Signed-off-by: Fangyi Zhou <me@fangyi.io>
2 years agol10n: tr: v2.34.0 round 2
Emir Sarı [Thu, 4 Nov 2021 10:19:12 +0000 (13:19 +0300)] 
l10n: tr: v2.34.0 round 2

Signed-off-by: Emir Sarı <bitigchi@me.com>
2 years agoasync_die_is_recursing: work around GCC v11.x issue on Fedora
Victoria Dye [Thu, 4 Nov 2021 04:01:03 +0000 (04:01 +0000)] 
async_die_is_recursing: work around GCC v11.x issue on Fedora

This fix corrects an issue found in the `dockerized(pedantic, fedora)` CI
build, first appearing after the introduction of a new version of the Fedora
docker image version. This image includes a version of `glibc` with the
attribute `__attr_access_none` added to `pthread_setspecific` [1], the
implementation of which only exists for GCC 11.X - the version included in
the Fedora image. The attribute requires that the pointer provided in the
second argument of `pthread_getspecific` must, if not NULL, be a pointer to
a valid object. In the usage in `async_die_is_recursing`, `(void *)1` is not
valid, causing the error.

This fix imitates a workaround added in SELinux [2] by using the pointer to
the static `async_die_counter` itself as the second argument to
`pthread_setspecific`. This guaranteed non-NULL, valid pointer matches the
intent of the current usage while not triggering the build error.

[1] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=a1561c3bbe8
[2] https://lore.kernel.org/all/20211021140519.6593-1-cgzones@googlemail.com/

Co-authored-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Victoria Dye <vdye@github.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: git.pot: v2.34.0 round 2 (3 new, 3 removed)
Jiang Xin [Thu, 4 Nov 2021 00:35:51 +0000 (08:35 +0800)] 
l10n: git.pot: v2.34.0 round 2 (3 new, 3 removed)

Generate po/git.pot from v2.34.0-rc1 for git v2.34.0 l10n round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2 years agoMerge branch 'master' of github.com:git/git
Jiang Xin [Thu, 4 Nov 2021 00:34:15 +0000 (08:34 +0800)] 
Merge branch 'master' of github.com:git/git

* 'master' of github.com:git/git:
  Git 2.34-rc1
  rebase -i: fix rewording with --committer-date-is-author-date
  dir: fix directory-matching bug
  gpg-interface: avoid buffer overrun in parse_ssh_output()
  gpg-interface: handle missing " with " gracefully in parse_ssh_output()
  A few more topics before -rc1
  i18n: fix typos found during l10n for git 2.34.0
  t5310: drop lib-bundle.sh include
  format-patch (doc): clarify --base=auto
  gc: perform incremental repack when implictly enabled
  fsck: verify multi-pack-index when implictly enabled
  fsck: verify commit graph when implicitly enabled
  grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data
  commit-graph: don't consider "replace" objects with "verify"
  commit-graph tests: fix another graph_git_two_modes() helper
  commit-graph tests: fix error-hiding graph_git_two_modes() helper
  pretty: colorize pattern matches in commit messages
  grep: refactor next_match() and match_one_pattern() for external use