]> git.ipfire.org Git - thirdparty/git.git/log
thirdparty/git.git
10 months agosideband: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:39 +0000 (18:34 +0000)] 
sideband: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agosetup: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:38 +0000 (18:34 +0000)] 
setup: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agorun-command: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:37 +0000 (18:34 +0000)] 
run-command: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agorevision: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:36 +0000 (18:34 +0000)] 
revision: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agorefs: fix typos
Andrew Kreimer [Thu, 19 Sep 2024 18:34:35 +0000 (18:34 +0000)] 
refs: fix typos

Fix typos in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agorebase: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:33 +0000 (18:34 +0000)] 
rebase: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agoread-cache-ll: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:32 +0000 (18:34 +0000)] 
read-cache-ll: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agopretty: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:31 +0000 (18:34 +0000)] 
pretty: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agoobject-file: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:30 +0000 (18:34 +0000)] 
object-file: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agomerge-ort: fix typos
Andrew Kreimer [Thu, 19 Sep 2024 18:34:29 +0000 (18:34 +0000)] 
merge-ort: fix typos

Fix typos in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agomerge-ll: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:28 +0000 (18:34 +0000)] 
merge-ll: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agohttp: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:27 +0000 (18:34 +0000)] 
http: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agogpg-interface: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:26 +0000 (18:34 +0000)] 
gpg-interface: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agogit-p4: fix typos
Andrew Kreimer [Thu, 19 Sep 2024 18:34:25 +0000 (18:34 +0000)] 
git-p4: fix typos

Fix typos in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agogit-instaweb: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:24 +0000 (18:34 +0000)] 
git-instaweb: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agofsmonitor-settings: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:23 +0000 (18:34 +0000)] 
fsmonitor-settings: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agodiffcore-rename: fix typos
Andrew Kreimer [Thu, 19 Sep 2024 18:34:22 +0000 (18:34 +0000)] 
diffcore-rename: fix typos

Fix typos in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 months agoconfig.mak.dev: fix a typo
Andrew Kreimer [Thu, 19 Sep 2024 18:34:21 +0000 (18:34 +0000)] 
config.mak.dev: fix a typo

Fix a typo in comments.

Signed-off-by: Andrew Kreimer <algonell@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoGit 2.46 v2.46.0
Junio C Hamano [Mon, 29 Jul 2024 14:14:09 +0000 (07:14 -0700)] 
Git 2.46

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoMerge tag 'l10n-2.46.0-rnd2' of https://github.com/git-l10n/git-po
Junio C Hamano [Mon, 29 Jul 2024 14:11:16 +0000 (07:11 -0700)] 
Merge tag 'l10n-2.46.0-rnd2' of https://github.com/git-l10n/git-po

l10n-2.46.0-rnd2

* tag 'l10n-2.46.0-rnd2' of https://github.com/git-l10n/git-po:
  l10n: zh_CN: updated translation for 2.46
  l10n: sv.po: Update Swedish translation
  l10n: zh_TW: Git 2.46
  l10n: Update German translation
  l10n: vi: Updated translation for 2.46
  l10n: uk: v2.46 update
  l10n: bg.po: Updated Bulgarian translation (5734t)
  l10n: fr: v2.46.0
  l10n: tr: Update Turkish translations
  l10n: po-id for 2.46

12 months agol10n: zh_CN: updated translation for 2.46
Teng Long [Thu, 18 Jul 2024 11:36:09 +0000 (19:36 +0800)] 
l10n: zh_CN: updated translation for 2.46

Signed-off-by: Teng Long <dyroneteng@gmail.com>
Co-authored-by: 依云 <lilydjwg@gmail.com>
Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 months agol10n: sv.po: Update Swedish translation
Peter Krefting [Sun, 21 Jul 2024 14:05:05 +0000 (15:05 +0100)] 
l10n: sv.po: Update Swedish translation

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
12 months agoMerge branch 'l10n/zh-TW/2024-07-24' of github.com:l10n-tw/git-po
Jiang Xin [Sat, 27 Jul 2024 08:27:25 +0000 (16:27 +0800)] 
Merge branch 'l10n/zh-TW/2024-07-24' of github.com:l10n-tw/git-po

* 'l10n/zh-TW/2024-07-24' of github.com:l10n-tw/git-po:
  l10n: zh_TW: Git 2.46

12 months agoMerge branch 'l10n-de-2.46' of github.com:ralfth/git
Jiang Xin [Sat, 27 Jul 2024 08:25:13 +0000 (16:25 +0800)] 
Merge branch 'l10n-de-2.46' of github.com:ralfth/git

* 'l10n-de-2.46' of github.com:ralfth/git:
  l10n: Update German translation

12 months agoMerge branch 'vi-2.46' of github.com:Nekosha/git-po
Jiang Xin [Sat, 27 Jul 2024 08:24:48 +0000 (16:24 +0800)] 
Merge branch 'vi-2.46' of github.com:Nekosha/git-po

* 'vi-2.46' of github.com:Nekosha/git-po:
  l10n: vi: Updated translation for 2.46

12 months agoMerge branch '2.46-uk-update' of github.com:arkid15r/git-ukrainian-l10n
Jiang Xin [Sat, 27 Jul 2024 08:21:09 +0000 (16:21 +0800)] 
Merge branch '2.46-uk-update' of github.com:arkid15r/git-ukrainian-l10n

* '2.46-uk-update' of github.com:arkid15r/git-ukrainian-l10n:
  l10n: uk: v2.46 update

12 months agoMerge branch 'master' of github.com:alshopov/git-po
Jiang Xin [Sat, 27 Jul 2024 08:20:29 +0000 (16:20 +0800)] 
Merge branch 'master' of github.com:alshopov/git-po

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

12 months agoMerge branch 'l10N_fr_2.46' of github.com:jnavila/git
Jiang Xin [Sat, 27 Jul 2024 08:18:53 +0000 (16:18 +0800)] 
Merge branch 'l10N_fr_2.46' of github.com:jnavila/git

* 'l10N_fr_2.46' of github.com:jnavila/git:
  l10n: fr: v2.46.0

12 months agoMerge branch 'tr-l10n' of github.com:bitigchi/git-po
Jiang Xin [Sat, 27 Jul 2024 08:17:45 +0000 (16:17 +0800)] 
Merge branch 'tr-l10n' of github.com:bitigchi/git-po

* 'tr-l10n' of github.com:bitigchi/git-po:
  l10n: tr: Update Turkish translations

12 months agoMerge branch 'po-id' of github.com:bagasme/git-po
Jiang Xin [Sat, 27 Jul 2024 08:16:43 +0000 (16:16 +0800)] 
Merge branch 'po-id' of github.com:bagasme/git-po

* 'po-id' of github.com:bagasme/git-po:
  l10n: po-id for 2.46

12 months agol10n: zh_TW: Git 2.46
Yi-Jyun Pan [Sat, 27 Jul 2024 06:34:25 +0000 (14:34 +0800)] 
l10n: zh_TW: Git 2.46

Co-authored-by: Lumynous <lumynou5.tw@gmail.com>
Co-authored-by: Ngoo Ka-iu <willy04wu69@gmail.com>
Co-authored-by: Nightfeather Chen <slat@nightfeather.me>
Co-authored-by: Kisaragi Hiu <mail@kisaragi-hiu.com>
Co-authored-by: hms5232 <hms5232@hhming.moe>
Signed-off-by: Yi-Jyun Pan <pan93412@gmail.com>
12 months agol10n: Update German translation
Ralf Thielow [Sat, 13 Jul 2024 12:42:34 +0000 (14:42 +0200)] 
l10n: Update German translation

Reviewed-by: Matthias Rüster <matthias.ruester@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
12 months agol10n: vi: Updated translation for 2.46
Vũ Tiến Hưng [Fri, 26 Jul 2024 04:03:27 +0000 (11:03 +0700)] 
l10n: vi: Updated translation for 2.46

Signed-off-by: Vũ Tiến Hưng <newcomerminecraft@gmail.com>
12 months agol10n: uk: v2.46 update
Arkadii Yakovets [Wed, 24 Jul 2024 21:30:10 +0000 (14:30 -0700)] 
l10n: uk: v2.46 update

Co-authored-by: Kate Golovanova <kate@kgthreads.com>
Signed-off-by: Arkadii Yakovets <ark@cho.red>
Signed-off-by: Kate Golovanova <kate@kgthreads.com>
12 months agoGit 2.46-rc2 v2.46.0-rc2
Junio C Hamano [Tue, 23 Jul 2024 23:54:19 +0000 (16:54 -0700)] 
Git 2.46-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoMerge branch 'ps/ref-storage-migration-fix'
Junio C Hamano [Tue, 23 Jul 2024 23:54:34 +0000 (16:54 -0700)] 
Merge branch 'ps/ref-storage-migration-fix'

Hotfix for a topic already in -rc.

* ps/ref-storage-migration-fix:
  refs: fix format migration on Cygwin

12 months agoMerge branch 'js/doc-markup-updates-fix'
Junio C Hamano [Tue, 23 Jul 2024 23:54:34 +0000 (16:54 -0700)] 
Merge branch 'js/doc-markup-updates-fix'

Work around asciidoctor's css that renders `monospace` material
in the SYNOPSIS section of manual pages as block elements.

* js/doc-markup-updates-fix:
  Doc: fix Asciidoctor css workaround
  asciidoctor: fix `synopsis` rendering

12 months agoMerge branch 'ja/doc-markup-updates-fix'
Junio C Hamano [Tue, 23 Jul 2024 23:54:33 +0000 (16:54 -0700)] 
Merge branch 'ja/doc-markup-updates-fix'

Fix documentation mark-up regression in 2.45.

* ja/doc-markup-updates-fix:
  doc: git-clone fix discrepancy between asciidoc and asciidoctor

12 months agoMerge branch 'ds/midx-write-repack-fix'
Junio C Hamano [Tue, 23 Jul 2024 23:54:33 +0000 (16:54 -0700)] 
Merge branch 'ds/midx-write-repack-fix'

Repacking a repository with multi-pack index started making stupid
pack selections in Git 2.45, which has been corrected.

* ds/midx-write-repack-fix:
  midx-write: revert use of --stdin-packs
  t5319: add failing test case for repack/expire

12 months agoDoc: fix Asciidoctor css workaround
Junio C Hamano [Mon, 22 Jul 2024 21:17:55 +0000 (14:17 -0700)] 
Doc: fix Asciidoctor css workaround

The previous step introduced docinfo.html to be used to tweak the
CSS used by the asciidoctor, that by default renders <code> inside
<pre> as a block element, breaking the SYNOPSIS section of a few
pages that adopted a new convention we use since Git 2.45.

But in this project, HTML files are all generated.  We do not force
any human to write HTML by hand, which is an unusual and cruel
punishment.  "*.html" is in the .gitignore file, and "make clean"
removes them.  Having a tracked .html file makes "make clean" make
the tree dirty by removing the tracked docinfo.html file.

Let's do an obvious, minimum and stupid workaround to generate that
file at runtime instead.  The mark-up is being rethought in a major
way for the next development cycle, and the CSS workaround we added
in the previous step may have to adjusted, possibly in a large way,
anyway.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agorefs: fix format migration on Cygwin
Patrick Steinhardt [Tue, 23 Jul 2024 12:31:28 +0000 (14:31 +0200)] 
refs: fix format migration on Cygwin

It was reported that t1460-refs-migrate.sh fails when using Cygwin with
errors like the following:

    error: could not link file '.git/ref_migration.sr9pEF/reftable' to '.git/reftable': Permission denied

As some debugging surfaced, the root cause of this is that some files of
the newly-initialized ref store are still open when the target format is
the "reftable" format, and Cygwin refuses to rename open files.

Fix this issue by closing the new ref store before renaming its files
into place. This is a slight change in behaviour compared to before,
where we kept the new ref store open and then updated the repository's
ref store to point to it.

While we could re-open the new ref store after we have moved files
around, this is ultimately unnecessary. We know that the only user of
`repo_migrate_ref_storage_format()` is the git-refs(1) command, and it
won't access the ref store after it has been migrated anyway. So
reinitializing the ref store would be a waste of time. Regardless of
that it is still sensible to leave the repository in a consistent state.
But instead of reinitializing the ref store, we can simply unset the
repo's ref store altogether and let `get_main_ref_store()` lazily
initialize the new ref store as required.

Reported-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoasciidoctor: fix `synopsis` rendering
Johannes Schindelin [Mon, 22 Jul 2024 20:25:49 +0000 (20:25 +0000)] 
asciidoctor: fix `synopsis` rendering

Since 76880f0510c (doc: git-clone: apply new documentation formatting
guidelines, 2024-03-29), the synopsis of `git clone`'s manual page is
rendered differently than before; Its parent commit did the same for
`git init`.

The result looks quite nice. When rendered with AsciiDoc, that is. When
rendered using AsciiDoctor and displayed in a graphical web browser such
as Firefox, Chrome, Edge, etc, the result is quite unpleasant to my eye,
reading something like this:

SYNOPSIS

 git clone
  [
 --template=
 <template-directory>]
  [
 -l
 ] [
 -s
 ] [
 --no-hardlinks
 ] [
 -q
 ] [
[... continuing like this ...]

The reason is that AsciiDoctor's default style sheet contains this (see
https://github.com/asciidoctor/asciidoctor/blob/854923b15533/src/stylesheets/asciidoctor.css#L519-L521
for context):

pre > code {
  display: block;
}

It is this `display: block` that forces the parts that are enclosed in
`<code>` tags (such as the `git clone` or the `--template=` part) to be
rendered on their own line.

Side note: This seems not to affect console web browsers like `lynx` or
`w3m`, most likely because most style sheet directions cannot be
respected in text terminals and therefore they seem to punt on style
sheets altogether.

To fix this, let's apply the method recommended by AsciiDoctor in
https://docs.asciidoctor.org/asciidoctor/latest/html-backend/default-stylesheet/#customize-docinfo
to partially override AsciiDoctor's default style sheet so that the
`<code>` sections of the synopsis are no longer each rendered on their
own, individual lines.

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

Even on the Git home page, where AsciiDoctor's default stylesheet is
_not_ used, this change resulted in some unpleasant rendering where not
only the font is changed for the `<code>` sections of the synopsis, but
padding and a different background color make the visual impression
quite uneven. This has been addressed in the meantime, via
https://github.com/git/git-scm.com/commit/a492d0565512.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agol10n: bg.po: Updated Bulgarian translation (5734t)
Alexander Shopov [Sun, 21 Jul 2024 19:31:10 +0000 (22:31 +0300)] 
l10n: bg.po: Updated Bulgarian translation (5734t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
12 months agodoc: git-clone fix discrepancy between asciidoc and asciidoctor
Jean-Noël Avila [Sat, 20 Jul 2024 17:34:13 +0000 (17:34 +0000)] 
doc: git-clone fix discrepancy between asciidoc and asciidoctor

Asciidoc.py does not have the concept of generalized roles, whereas
asciidoctor interprets [foo]`blah` as blah with role foo in the
synopsis, making in effect foo disappear in the output. Note that
square brackets not directly followed by an inline markup do not
define a role, which is why we do not have the issue on other parts of
the documentation.

In order to get a consistant result across asciidoctor and
asciidoc.py, the hack is to use the {empty} entity
to split the bracket part from the inline format part.

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agol10n: fr: v2.46.0
Jean-Noël Avila [Wed, 17 Jul 2024 20:39:57 +0000 (22:39 +0200)] 
l10n: fr: v2.46.0

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
12 months agomidx-write: revert use of --stdin-packs
Derrick Stolee [Thu, 18 Jul 2024 19:55:46 +0000 (19:55 +0000)] 
midx-write: revert use of --stdin-packs

This reverts b7d6f23a171 (midx-write.c: use `--stdin-packs` when
repacking, 2024-04-01) and then marks the test created in the previous
change as passing.

The fundamental issue with the reverted change is that the focus on
pack-files separates the object selection from how the multi-pack-index
selects a single pack-file for an object ID with multiple copies among
the tracked pack-files.

The change was made with the intention of improving delta compression in
the resulting pack-file, but that can be resolved with the existing
object list mechanism. There are other potential pitfalls of doing an
object walk at this time if the repository is a blobless partial clone,
and that will require additional testing on top of the one that changes
here.

Signed-off-by: Derrick Stolee <stolee@gmail.com>
Acked-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agol10n: tr: Update Turkish translations
Emir SARI [Sun, 14 Jul 2024 19:20:03 +0000 (22:20 +0300)] 
l10n: tr: Update Turkish translations

Signed-off-by: Emir SARI <emir_sari@icloud.com>
12 months agol10n: po-id for 2.46
Bagas Sanjaya [Sun, 14 Jul 2024 07:50:43 +0000 (14:50 +0700)] 
l10n: po-id for 2.46

Update following components:

  * builtin/clone.c
  * builtin/config.c
  * builtin/for-each-repo.c
  * builtin/refs.c
  * command-list.h
  * commit-graph.c
  * http.c
  * pack-bitmap-write.c
  * pack-bitmap.c
  * promisor-remote.c
  * refs.c
  * sequencer.c

Translate following new components:

  * pseudo-merge.c
  * refs/files-backend.c

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
12 months agot5319: add failing test case for repack/expire
Derrick Stolee [Thu, 18 Jul 2024 19:55:45 +0000 (19:55 +0000)] 
t5319: add failing test case for repack/expire

Git 2.45.0 included the change b7d6f23a171 (midx-write.c: use
`--stdin-packs` when repacking, 2024-04-01) which caused the 'git
multi-pack-index repack' command to use 'git pack-objects --stdin-packs'
instead of listing the objects to repack. While this change was
motivated by efficient cross-process communication and the ability to
improve delta compression, it breaks a fundamental function of the
'incremental-repack' task that is enabled by default in Scalar clones or
Git repositories that run 'git maintenance start'.

The 'incremental-repack' task performs a two-step process of the
'expire' and 'repack' subcommands of the 'git multi-pack-index' builtin.
The 'expire' command removes any pack-files listed in the
multi-pack-index but without any referenced objects. The 'repack' task
then finds a batch of pack-files to repack and sends their objects to
'git pack-objects'. Both the pack-files chosen for the batch and the
objects chosen to repack are based on the ones that the multi-pack-index
references. Objects that appear in a pack-file but have a duplicate copy
in a newer pack-file are not considered in this case. Since the
multi-pack-index references only the newest copy of an object, this
allows the next 'incremental-repack' task to remove the pack-files in
the next 'expire' task. This delay is intentional due to how Windows
handles may block deletion of files with open read handles.

However, the mentioned commit changed this behavior to divorce the set
of objects referenced by the multi-pack-index and instead use a set of
"included" and "excluded" pack-files in the 'git pack-objects' builtin.
When a pack-file is selected as "included", only the objects it contains
but are not in any "excluded" pack-files are considered for repacking.
This has led to client repositories failing to remove old pack-files as
they still have some referenced objects. This grows over time until the
point that Git is trying to repack the same pack-files over and over.

For now, create a test case that demonstrates the expected behavior, but
also fails in its final line. The setup here it attempting to recreate a
typical situation for a repository that uses a blobless partial clone.
There would be a large initial pack-file from the clone that is never
selected in the 'repack' batch. There are other pack-files that have a
combination of new objects from incremental fetches and possibly blobs
that are not connected to those incremental fetches; these blobs could
be filled in from commands like 'git checkout' or 'git blame'. The
pack-files also have some overlap on purpose so test-1 has some
duplicates in test-2 and test-2 has some duplicates in test-3.

At the end of the test, the test-2 pack-file still exists though it
should have been expired. This test will pass when reverting the
offending commit.

Signed-off-by: Derrick Stolee <stolee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoGit 2.46-rc1 v2.46.0-rc1
Junio C Hamano [Thu, 18 Jul 2024 15:23:53 +0000 (08:23 -0700)] 
Git 2.46-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoMerge branch 'jk/am-retry'
Junio C Hamano [Thu, 18 Jul 2024 15:30:27 +0000 (08:30 -0700)] 
Merge branch 'jk/am-retry'

Test fix as a follow-up to an already graduated topic.

* jk/am-retry:
  t4153: stop redirecting input from /dev/zero

12 months agoMerge branch 'tb/pseudo-merge-reachability-bitmap'
Junio C Hamano [Thu, 18 Jul 2024 15:30:27 +0000 (08:30 -0700)] 
Merge branch 'tb/pseudo-merge-reachability-bitmap'

Doc update.

* tb/pseudo-merge-reachability-bitmap:
  Documentation/gitpacking: make sample configs listing blocks

12 months agoMerge branch 'ps/pseudo-ref-terminology'
Junio C Hamano [Thu, 18 Jul 2024 15:30:26 +0000 (08:30 -0700)] 
Merge branch 'ps/pseudo-ref-terminology'

Doc update.

* ps/pseudo-ref-terminology:
  Documentation/glossary: fix double word

12 months agoMerge branch 'tb/doc-max-tree-depth-fix'
Junio C Hamano [Thu, 18 Jul 2024 15:30:26 +0000 (08:30 -0700)] 
Merge branch 'tb/doc-max-tree-depth-fix'

Doc update.

* tb/doc-max-tree-depth-fix:
  Documentation: fix default value for core.maxTreeDepth

12 months agoMerge branch 'ch/refs-without-the-repository-fix'
Junio C Hamano [Thu, 18 Jul 2024 15:30:25 +0000 (08:30 -0700)] 
Merge branch 'ch/refs-without-the-repository-fix'

Comment fix.

* ch/refs-without-the-repository-fix:
  refs: correct the version numbers in a comment

12 months agoPost 2.46-rc0 batch #3
Junio C Hamano [Wed, 17 Jul 2024 17:47:05 +0000 (10:47 -0700)] 
Post 2.46-rc0 batch #3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoMerge branch 'js/unit-test-oidtree-cmake-fix'
Junio C Hamano [Wed, 17 Jul 2024 17:47:27 +0000 (10:47 -0700)] 
Merge branch 'js/unit-test-oidtree-cmake-fix'

Build fix.

* js/unit-test-oidtree-cmake-fix:
  cmake: fix build of `t-oidtree`

12 months agoMerge branch 'js/var-git-shell-path'
Junio C Hamano [Wed, 17 Jul 2024 17:47:27 +0000 (10:47 -0700)] 
Merge branch 'js/var-git-shell-path'

"git var GIT_SHELL_PATH" should report the path to the shell used
to spawn external commands, but it didn't do so on Windows, which
has been corrected.

* js/var-git-shell-path:
  var(win32): do report the GIT_SHELL_PATH that is actually used
  run-command: declare the `git_shell_path()` function globally
  run-command(win32): resolve the path to the Unix shell early
  mingw(is_msys2_sh): handle forward slashes in the `sh.exe` path, too
  win32: override `fspathcmp()` with a directory separator-aware version
  strvec: declare the `strvec_push_nodup()` function globally
  run-command: refactor getting the Unix shell path into its own function

12 months agoMerge branch 'ps/doc-http-empty-cookiefile'
Junio C Hamano [Wed, 17 Jul 2024 17:47:26 +0000 (10:47 -0700)] 
Merge branch 'ps/doc-http-empty-cookiefile'

What happens when http.cookieFile gets the special value "" has
been clarified in the documentation.

* ps/doc-http-empty-cookiefile:
  doc: update http.cookieFile with in-memory cookie processing

12 months agoMerge branch 'kn/push-empty-fix'
Junio C Hamano [Wed, 17 Jul 2024 17:47:26 +0000 (10:47 -0700)] 
Merge branch 'kn/push-empty-fix'

"git push '' HEAD:there" used to hit a BUG(); it has been corrected
to die with "fatal: bad repository ''".

* kn/push-empty-fix:
  builtin/push: call set_refspecs after validating remote

12 months agoMerge branch 'jc/http-cookiefile'
Junio C Hamano [Wed, 17 Jul 2024 17:47:25 +0000 (10:47 -0700)] 
Merge branch 'jc/http-cookiefile'

The http.cookieFile and http.saveCookies configuration variables
have a few values that need to be avoided, which are now ignored
with warning messages.

* jc/http-cookiefile:
  http.c: cookie file tightening

12 months agoMerge branch 'jk/test-body-in-here-doc'
Junio C Hamano [Wed, 17 Jul 2024 17:47:24 +0000 (10:47 -0700)] 
Merge branch 'jk/test-body-in-here-doc'

The test framework learned to take the test body not as a single
string but as a here-document.

* jk/test-body-in-here-doc:
  t/.gitattributes: ignore whitespace in chainlint expect files
  t: convert some here-doc test bodies
  test-lib: allow test snippets as here-docs
  chainlint.pl: add tests for test body in heredoc
  chainlint.pl: recognize test bodies defined via heredoc
  chainlint.pl: check line numbers in expected output
  chainlint.pl: force CRLF conversion when opening input files
  chainlint.pl: do not spawn more threads than we have scripts
  chainlint.pl: only start threads if jobs > 1
  chainlint.pl: add test_expect_success call to test snippets

12 months agoMerge branch 'rj/test-sanitize-leak-log-fix'
Junio C Hamano [Wed, 17 Jul 2024 17:47:24 +0000 (10:47 -0700)] 
Merge branch 'rj/test-sanitize-leak-log-fix'

Tests that use GIT_TEST_SANITIZE_LEAK_LOG feature got their exit
status inverted, which has been corrected.

* rj/test-sanitize-leak-log-fix:
  test-lib: GIT_TEST_SANITIZE_LEAK_LOG enabled by default
  test-lib: fix GIT_TEST_SANITIZE_LEAK_LOG

12 months agoDocumentation: fix default value for core.maxTreeDepth
Taylor Blau [Wed, 17 Jul 2024 13:17:31 +0000 (09:17 -0400)] 
Documentation: fix default value for core.maxTreeDepth

When `core.maxTreeDepth` was originally introduced via be20128bfa (add
core.maxTreeDepth config, 2023-08-31), its default value was 4096.

There have since been a couple of updates to its default value that were
not reflected in the documentation for `core.maxTreeDepth`:

  - 4d5693ba05 (lower core.maxTreeDepth default to 2048, 2023-08-31)
  - b64d78ad02 (max_tree_depth: lower it for MSVC to avoid stack
    overflows, 2023-11-01)

Commit 4d5693ba05 lowers the default to 2048 for platforms with smaller
stack sizes, and commit b64d78ad02 lowers the default even further when
Git is compiled with MSVC.

Neither of these changes were reflected in the documentation, which I
noticed while merging newer releases back into GitHub's private fork
(which contained the original implementation of `core.maxTreeDepth`).

Update the documentation to reflect what the platform-specific default
values are.

Noticed-by: Keith W. Campbell <keithc@ca.ibm.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoDocumentation/glossary: fix double word
Martin Ågren [Wed, 17 Jul 2024 10:54:29 +0000 (12:54 +0200)] 
Documentation/glossary: fix double word

Remove a spurious "that".

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoDocumentation/gitpacking: make sample configs listing blocks
Martin Ågren [Wed, 17 Jul 2024 10:54:28 +0000 (12:54 +0200)] 
Documentation/gitpacking: make sample configs listing blocks

This document contains a few sample config snippets. At least with
Asciidoctor, the section headers are rendered *more* indented than the
variables that follow:

       [bitmapPseudoMerge "all"]
    pattern = "refs/"
    ...

To address this, wrap these listings in AsciiDoc listing blocks. Remove
the indentation from the section headings. This is similar to how we
handle such sample config elsewhere, e.g., in config.txt.

While we're here, fix the nearby "wiht" typo.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agot4153: stop redirecting input from /dev/zero
Jeff King [Wed, 17 Jul 2024 07:00:50 +0000 (03:00 -0400)] 
t4153: stop redirecting input from /dev/zero

Commit 852a171018 (am: let command-line options override saved options,
2015-08-04) redirected a few "git am" invocations from /dev/zero, even
though it did not expect "am" to read the input. This was necessary at
the time because those tests used test_terminal, and as described in
18d8c26930 (test_terminal: redirect child process' stdin to a pty,
2015-08-04):

  Note that due to the way the code is structured, the child's stdin
  pseudo-tty will be closed when we finish reading from our stdin. This
  means that in the common case, where our stdin is attached to /dev/null,
  the child's stdin pseudo-tty will be closed immediately. Some operations
  like isatty(), which git-am uses, require the file descriptor to be
  open, and hence if the success of the command depends on such functions,
  test_terminal's stdin should be redirected to a source with large amount
  of data to ensure that the child's stdin is not closed, e.g.

              test_terminal git am --3way </dev/zero

But we later dropped the use of test_terminal in 53ce2e3f0a (am: add
explicit "--retry" option, 2024-06-06). That commit dropped one of the
redirections from /dev/zero but not the other.

In theory the remaining one should not cause any problems, but it turns
out that at least one platform (NonStop) does not have /dev/zero at all.
We never noticed before because it also did not pass the TTY prereq,
meaning these tests were not run at all there until 53ce2e3f0a.

So let's drop the useless /dev/zero mention. There are others in the
test suite, but they are run only for tests marked with EXPENSIVE (so
not typically by default).

Reported-by: Randall S. Becker <rsbecker@nexbridge.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoPost 2.46-rc0 batch #2
Junio C Hamano [Tue, 16 Jul 2024 18:18:39 +0000 (11:18 -0700)] 
Post 2.46-rc0 batch #2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoMerge branch 'bc/gitfaq-more'
Junio C Hamano [Tue, 16 Jul 2024 18:18:58 +0000 (11:18 -0700)] 
Merge branch 'bc/gitfaq-more'

A handful of entries are added to the GitFAQ document.

* bc/gitfaq-more:
  doc: mention that proxies must be completely transparent
  gitfaq: add entry about syncing working trees
  gitfaq: give advice on using eol attribute in gitattributes
  gitfaq: add documentation on proxies

12 months agoMerge branch 'bc/http-proactive-auth'
Junio C Hamano [Tue, 16 Jul 2024 18:18:57 +0000 (11:18 -0700)] 
Merge branch 'bc/http-proactive-auth'

The http transport can now be told to send request with
authentication material without first getting a 401 response.

* bc/http-proactive-auth:
  http: allow authenticating proactively

12 months agoMerge branch 'jc/where-is-bash-for-ci'
Junio C Hamano [Tue, 16 Jul 2024 18:18:57 +0000 (11:18 -0700)] 
Merge branch 'jc/where-is-bash-for-ci'

Shell script clean-up.

* jc/where-is-bash-for-ci:
  ci: unify bash calling convention

12 months agoMerge branch 'ds/advice-sparse-index-expansion'
Junio C Hamano [Tue, 16 Jul 2024 18:18:56 +0000 (11:18 -0700)] 
Merge branch 'ds/advice-sparse-index-expansion'

A new warning message is issued when a command has to expand a
sparse index to handle working tree cruft that are outside of the
sparse checkout.

* ds/advice-sparse-index-expansion:
  advice: warn when sparse index expands

12 months agoMerge branch 'cb/send-email-sanitize-trailer-addresses'
Junio C Hamano [Tue, 16 Jul 2024 18:18:56 +0000 (11:18 -0700)] 
Merge branch 'cb/send-email-sanitize-trailer-addresses'

Address-looking strings found on the trailer are now placed on the
Cc: list after running through sanitize_address by "git send-email".
* cb/send-email-sanitize-trailer-addresses:
  git-send-email: use sanitized address when reading mbox body

12 months agoMerge branch 'en/ort-inner-merge-error-fix'
Junio C Hamano [Tue, 16 Jul 2024 18:18:55 +0000 (11:18 -0700)] 
Merge branch 'en/ort-inner-merge-error-fix'

The "ort" merge backend saw one bugfix for a crash that happens
when inner merge gets killed, and assorted code clean-ups.

* en/ort-inner-merge-error-fix:
  merge-ort: fix missing early return
  merge-ort: convert more error() cases to path_msg()
  merge-ort: upon merge abort, only show messages causing the abort
  merge-ort: loosen commented requirements
  merge-ort: clearer propagation of failure-to-function from merge_submodule
  merge-ort: fix type of local 'clean' var in handle_content_merge ()
  merge-ort: maintain expected invariant for priv member
  merge-ort: extract handling of priv member into reusable function

12 months agorefs: correct the version numbers in a comment
Christian Hesse [Tue, 16 Jul 2024 09:55:44 +0000 (11:55 +0200)] 
refs: correct the version numbers in a comment

The paragraph talks about a change made in c8f815c2 (refs: remove
functions without ref store, 2024-05-07), which is v2.46.0-rc0~119^2
and will be published as part of v2.46, not v2.45.

Signed-off-by: Christian Hesse <mail@eworm.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoPost 2.46-rc0 batch #1
Junio C Hamano [Mon, 15 Jul 2024 17:11:12 +0000 (10:11 -0700)] 
Post 2.46-rc0 batch #1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agoMerge branch 'cp/unit-test-reftable-record'
Junio C Hamano [Mon, 15 Jul 2024 17:11:43 +0000 (10:11 -0700)] 
Merge branch 'cp/unit-test-reftable-record'

A test in reftable library has been rewritten using the unit test
framework.

* cp/unit-test-reftable-record:
  t-reftable-record: add tests for reftable_log_record_compare_key()
  t-reftable-record: add tests for reftable_ref_record_compare_name()
  t-reftable-record: add index tests for reftable_record_is_deletion()
  t-reftable-record: add obj tests for reftable_record_is_deletion()
  t-reftable-record: add log tests for reftable_record_is_deletion()
  t-reftable-record: add ref tests for reftable_record_is_deletion()
  t-reftable-record: add comparison tests for obj records
  t-reftable-record: add comparison tests for index records
  t-reftable-record: add comparison tests for ref records
  t-reftable-record: add reftable_record_cmp() tests for log records
  t: move reftable/record_test.c to the unit testing framework

12 months agoMerge branch 'jc/disable-push-nego-for-deletion'
Junio C Hamano [Mon, 15 Jul 2024 17:11:43 +0000 (10:11 -0700)] 
Merge branch 'jc/disable-push-nego-for-deletion'

"git push" that pushes only deletion gave an unnecessary and
harmless error message when push negotiation is configured, which
has been corrected.

* jc/disable-push-nego-for-deletion:
  push: avoid showing false negotiation errors

12 months agoMerge branch 'ri/doc-show-branch-fix'
Junio C Hamano [Mon, 15 Jul 2024 17:11:43 +0000 (10:11 -0700)] 
Merge branch 'ri/doc-show-branch-fix'

Docfix.

* ri/doc-show-branch-fix:
  doc: fix the max number of branches shown by "show-branch"

12 months agoMerge branch 'tb/dev-build-pedantic-fix'
Junio C Hamano [Mon, 15 Jul 2024 17:11:42 +0000 (10:11 -0700)] 
Merge branch 'tb/dev-build-pedantic-fix'

Developer build procedure fix.

* tb/dev-build-pedantic-fix:
  config.mak.dev: fix typo when enabling -Wpedantic

12 months agoMerge branch 'rs/clang-format-updates'
Junio C Hamano [Mon, 15 Jul 2024 17:11:42 +0000 (10:11 -0700)] 
Merge branch 'rs/clang-format-updates'

Custom control structures we invented more recently have been
taught to the clang-format file.

* rs/clang-format-updates:
  clang-format: include kh_foreach* macros in ForEachMacros

12 months agoMerge branch 'am/gitweb-feed-use-committer-date'
Junio C Hamano [Mon, 15 Jul 2024 17:11:41 +0000 (10:11 -0700)] 
Merge branch 'am/gitweb-feed-use-committer-date'

GitWeb update to use committer date consistently in rss/atom feeds.

* am/gitweb-feed-use-committer-date:
  gitweb: rss/atom change published/updated date to committer date

12 months agoMerge branch 'jk/tests-without-dns'
Junio C Hamano [Mon, 15 Jul 2024 17:11:41 +0000 (10:11 -0700)] 
Merge branch 'jk/tests-without-dns'

Test suite has been taught not to unnecessarily rely on DNS failing
a bogus external name.

* jk/tests-without-dns:
  t/lib-bundle-uri: use local fake bundle URLs
  t5551: do not confirm that bogus url cannot be used
  t5553: use local url for invalid fetch

12 months agoMerge branch 'gt/unit-test-oidmap'
Junio C Hamano [Mon, 15 Jul 2024 17:11:40 +0000 (10:11 -0700)] 
Merge branch 'gt/unit-test-oidmap'

An existing test of oidmap API has been rewritten with the
unit-test framework.

* gt/unit-test-oidmap:
  t: migrate helper/test-oidmap.c to unit-tests/t-oidmap.c

12 months agoMerge branch 'as/describe-broken-refresh-index-fix'
Junio C Hamano [Mon, 15 Jul 2024 17:11:40 +0000 (10:11 -0700)] 
Merge branch 'as/describe-broken-refresh-index-fix'

"git describe --dirty --broken" forgot to refresh the index before
seeing if there is any chang, ("git describe --dirty" correctly did
so), which has been corrected.

* as/describe-broken-refresh-index-fix:
  describe: refresh the index when 'broken' flag is used

12 months agoMerge branch 'rj/t0613-no-longer-leaks'
Junio C Hamano [Mon, 15 Jul 2024 17:11:39 +0000 (10:11 -0700)] 
Merge branch 'rj/t0613-no-longer-leaks'

A test that no longer leaks has been marked as such.

* rj/t0613-no-longer-leaks:
  t0613: mark as leak-free

12 months agoMerge branch 'rj/t0612-no-longer-leaks'
Junio C Hamano [Mon, 15 Jul 2024 17:11:39 +0000 (10:11 -0700)] 
Merge branch 'rj/t0612-no-longer-leaks'

A test that no longer leaks has been marked as such.

* rj/t0612-no-longer-leaks:
  t0612: mark as leak-free

12 months agovar(win32): do report the GIT_SHELL_PATH that is actually used
Johannes Schindelin [Sat, 13 Jul 2024 21:08:24 +0000 (21:08 +0000)] 
var(win32): do report the GIT_SHELL_PATH that is actually used

On Windows, Unix-like paths like `/bin/sh` make very little sense. In
the best case, they simply don't work, in the worst case they are
misinterpreted as absolute paths that are relative to the drive
associated with the current directory.

To that end, Git does not actually use the path `/bin/sh` that is
recorded e.g. when `run_command()` is called with a Unix shell
command-line. Instead, as of 776297548e (Do not use SHELL_PATH from
build system in prepare_shell_cmd on Windows, 2012-04-17), it
re-interprets `/bin/sh` as "look up `sh` on the `PATH` and use the
result instead".

This is the logic users expect to be followed when running `git var
GIT_SHELL_PATH`.

However, when 1e65721227 (var: add support for listing the shell,
2023-06-27) introduced support for `git var GIT_SHELL_PATH`, Windows was
not special-cased as above, which is why it outputs `/bin/sh` even
though that disagrees with what Git actually uses.

Let's fix this by using the exact same logic as `prepare_shell_cmd()`,
adjusting the Windows-specific `git var GIT_SHELL_PATH` test case to
verify that it actually finds a working executable.

Reported-by: Phillip Wood <phillip.wood123@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agorun-command: declare the `git_shell_path()` function globally
Johannes Schindelin [Sat, 13 Jul 2024 21:08:23 +0000 (21:08 +0000)] 
run-command: declare the `git_shell_path()` function globally

The intention is to use it in `git var GIT_SHELL_PATH`, therefore we
need this function to stop being file-local only.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agorun-command(win32): resolve the path to the Unix shell early
Johannes Schindelin [Sat, 13 Jul 2024 21:08:22 +0000 (21:08 +0000)] 
run-command(win32): resolve the path to the Unix shell early

In 776297548e (Do not use SHELL_PATH from build system in
prepare_shell_cmd on Windows, 2012-04-17), the hard-coded path to the
Unix shell was replaced by passing `sh` instead when executing Unix
shell scripts in Git.

This was done because the hard-coded path to the Unix shell is incorrect
on Windows because it not only is a Unix-style absolute path instead of
a Windows one, but Git uses the runtime prefix feature on Windows, i.e.
the correct path cannot be hard-coded.

Naturally, the `sh` argument will be resolved to the full path of said
executable eventually.

To help fixing the bug where `git var GIT_SHELL_PATH` currently does not
reflect that logic, but shows that incorrect hard-coded Unix-style
absolute path, let's resolve the full path to the `sh` executable early
in the `git_shell_path()` function so that we can use it in `git var`,
too, and be sure that the output is equivalent to what `run_command()`
does when it is asked to execute a command-line using a Unix shell.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agomingw(is_msys2_sh): handle forward slashes in the `sh.exe` path, too
Johannes Schindelin [Sat, 13 Jul 2024 21:08:21 +0000 (21:08 +0000)] 
mingw(is_msys2_sh): handle forward slashes in the `sh.exe` path, too

Whether the full path to the MSYS2 Bash is specified using backslashes
or forward slashes, in either case the command-line arguments need to be
quoted in the MSYS2-specific manner instead of using regular Win32
command-line quoting rules.

In preparation for `prepare_shell_cmd()` to use the full path to
`sh.exe` (with forward slashes for consistency), let's teach the
`is_msys2_sh()` function about this; Otherwise 5580.4 'clone with
backslashed path' would fail once `prepare_shell_cmd()` uses the full
path instead of merely `sh`.

This patch relies on the just-introduced fix where `fspathcmp()` handles
backslashes and forward slashes as equivalent on Windows.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agowin32: override `fspathcmp()` with a directory separator-aware version
Johannes Schindelin [Sat, 13 Jul 2024 21:08:20 +0000 (21:08 +0000)] 
win32: override `fspathcmp()` with a directory separator-aware version

On Windows, the backslash is the directory separator, even if the
forward slash can be used, too, at least since Windows NT.

This means that the paths `a/b` and `a\b` are equivalent, and
`fspathcmp()` needs to be made aware of that fact.

Note that we have to override both `fspathcmp()` and `fspathncmp()`, and
the former cannot be a mere pre-processor constant that transforms calls
to `fspathcmp(a, b)` into `fspathncmp(a, b, (size_t)-1)` because the
function `report_collided_checkout()` in `unpack-trees.c` wants to
assign `list.cmp = fspathcmp`.

Also note that `fspatheq()` does _not_ need to be overridden because it
calls `fspathcmp()` internally.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agostrvec: declare the `strvec_push_nodup()` function globally
Johannes Schindelin [Sat, 13 Jul 2024 21:08:19 +0000 (21:08 +0000)] 
strvec: declare the `strvec_push_nodup()` function globally

This function differs from `strvec_push()` in that it takes ownership of
the allocated string that is passed as second argument.

This is useful when appending elements to the string array that have
been freshly allocated and serve no further other purpose after that.

Without declaring this function globally, call sites would allocate the
memory, only to have `strvec_push()` duplicate the string, and then the
first copy would need to be released. Having this function globally
avoids that kind of unnecessary work.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agorun-command: refactor getting the Unix shell path into its own function
Johannes Schindelin [Sat, 13 Jul 2024 21:08:18 +0000 (21:08 +0000)] 
run-command: refactor getting the Unix shell path into its own function

This encapsulates the platform-specific logic better.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 months agocmake: fix build of `t-oidtree`
Johannes Schindelin [Fri, 12 Jul 2024 20:34:10 +0000 (20:34 +0000)] 
cmake: fix build of `t-oidtree`

When the `oidtree` test helper was turned into a unit test, a new
`lib-oid` source file was added as dependency. This was only done in the
Makefile so far, but also needs to be done in the CMake definition.

This is a companion of ed548408723d (t/: migrate helper/test-oidtree.c
to unit-tests/t-oidtree.c, 2024-06-08).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 months agobuiltin/push: call set_refspecs after validating remote
Karthik Nayak [Thu, 11 Jul 2024 09:39:54 +0000 (11:39 +0200)] 
builtin/push: call set_refspecs after validating remote

When an end-user runs "git push" with an empty string for the remote
repository name, e.g.

    $ git push '' main

"git push" fails with a BUG(). Even though this is a nonsense request
that we want to fail, we shouldn't hit a BUG().  Instead we want to give
a sensible error message, e.g., 'bad repository'".

This is because since 9badf97c42 (remote: allow resetting url list,
2024-06-14), we reset the remote URL if the provided URL is empty. When
a user of 'remotes_remote_get' tries to fetch a remote with an empty
repo name, the function initializes the remote via 'make_remote'. But
the remote is still not a valid remote, since the URL is empty, so it
tries to add the URL alias using 'add_url_alias'. This in-turn will call
'add_url', but since the URL is empty we call 'strvec_clear' on the
`remote->url`. Back in 'remotes_remote_get', we again check if the
remote is valid, which fails, so we return 'NULL' for the 'struct
remote *' value.

The 'builtin/push.c' code, calls 'set_refspecs' before validating the
remote. This worked with empty repo names earlier since we would get a
remote, albeit with an empty URL. With the new changes, we get a 'NULL'
remote value, this causes the check for remote to fail and raises the
BUG in 'set_refspecs'.

Do a simple fix by doing remote validation first. Also add a test to
validate the bug fix. With this, we can also now directly pass remote to
'set_refspecs' instead of it trying to lazily obtain it.

Helped-by: Jeff King <peff@peff.net>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 months agoGit 2.46-rc0 v2.46.0-rc0
Junio C Hamano [Fri, 12 Jul 2024 15:40:36 +0000 (08:40 -0700)] 
Git 2.46-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 months agoMerge branch 'rs/simplify-submodule-helper-super-prefix-invocation'
Junio C Hamano [Fri, 12 Jul 2024 15:41:57 +0000 (08:41 -0700)] 
Merge branch 'rs/simplify-submodule-helper-super-prefix-invocation'

Code clean-up.

* rs/simplify-submodule-helper-super-prefix-invocation:
  submodule--helper: use strvec_pushf() for --super-prefix

13 months agoMerge branch 'as/pathspec-h-typofix'
Junio C Hamano [Fri, 12 Jul 2024 15:41:57 +0000 (08:41 -0700)] 
Merge branch 'as/pathspec-h-typofix'

Typofix.

* as/pathspec-h-typofix:
  pathspec: fix typo "glossary-context.txt" -> "glossary-content.txt"

13 months agodoc: update http.cookieFile with in-memory cookie processing
Piotr Szlazak [Thu, 11 Jul 2024 08:36:48 +0000 (08:36 +0000)] 
doc: update http.cookieFile with in-memory cookie processing

Documentation only mentions how to read cookies from the given file
and how to save them to the file using http.saveCookies.

But underlying libcURL allows the HTTP cookies used only in memory;
cookies from the server will be accepted and sent back in successive
requests within same connection, by using an empty string as the
filename.  Document this.

Signed-off-by: Piotr Szlazak <piotr.szlazak@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>