summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-07-18Git 2.46-rc1v2.46.0-rc1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-18Merge branch 'jk/am-retry'Junio C Hamano
Test fix as a follow-up to an already graduated topic. * jk/am-retry: t4153: stop redirecting input from /dev/zero
2024-07-18Merge branch 'tb/pseudo-merge-reachability-bitmap'Junio C Hamano
Doc update. * tb/pseudo-merge-reachability-bitmap: Documentation/gitpacking: make sample configs listing blocks
2024-07-18Merge branch 'ps/pseudo-ref-terminology'Junio C Hamano
Doc update. * ps/pseudo-ref-terminology: Documentation/glossary: fix double word
2024-07-18Merge branch 'tb/doc-max-tree-depth-fix'Junio C Hamano
Doc update. * tb/doc-max-tree-depth-fix: Documentation: fix default value for core.maxTreeDepth
2024-07-18Merge branch 'ch/refs-without-the-repository-fix'Junio C Hamano
Comment fix. * ch/refs-without-the-repository-fix: refs: correct the version numbers in a comment
2024-07-17Post 2.46-rc0 batch #3Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-17Merge branch 'js/unit-test-oidtree-cmake-fix'Junio C Hamano
Build fix. * js/unit-test-oidtree-cmake-fix: cmake: fix build of `t-oidtree`
2024-07-17Merge branch 'js/var-git-shell-path'Junio C Hamano
"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
2024-07-17Merge branch 'ps/doc-http-empty-cookiefile'Junio C Hamano
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
2024-07-17Merge branch 'kn/push-empty-fix'Junio C Hamano
"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
2024-07-17Merge branch 'jc/http-cookiefile'Junio C Hamano
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
2024-07-17Merge branch 'jk/test-body-in-here-doc'Junio C Hamano
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
2024-07-17Merge branch 'rj/test-sanitize-leak-log-fix'Junio C Hamano
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
2024-07-17Documentation: fix default value for core.maxTreeDepthTaylor Blau
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>
2024-07-17Documentation/glossary: fix double wordMartin Ågren
Remove a spurious "that". Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-17Documentation/gitpacking: make sample configs listing blocksMartin Ågren
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>
2024-07-17t4153: stop redirecting input from /dev/zeroJeff King
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>
2024-07-16Post 2.46-rc0 batch #2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-16Merge branch 'bc/gitfaq-more'Junio C Hamano
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
2024-07-16Merge branch 'bc/http-proactive-auth'Junio C Hamano
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
2024-07-16Merge branch 'jc/where-is-bash-for-ci'Junio C Hamano
Shell script clean-up. * jc/where-is-bash-for-ci: ci: unify bash calling convention
2024-07-16Merge branch 'ds/advice-sparse-index-expansion'Junio C Hamano
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
2024-07-16Merge branch 'cb/send-email-sanitize-trailer-addresses'Junio C Hamano
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
2024-07-16Merge branch 'en/ort-inner-merge-error-fix'Junio C Hamano
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
2024-07-16refs: correct the version numbers in a commentChristian Hesse
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>
2024-07-15Post 2.46-rc0 batch #1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-15Merge branch 'cp/unit-test-reftable-record'Junio C Hamano
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
2024-07-15Merge branch 'jc/disable-push-nego-for-deletion'Junio C Hamano
"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
2024-07-15Merge branch 'ri/doc-show-branch-fix'Junio C Hamano
Docfix. * ri/doc-show-branch-fix: doc: fix the max number of branches shown by "show-branch"
2024-07-15Merge branch 'tb/dev-build-pedantic-fix'Junio C Hamano
Developer build procedure fix. * tb/dev-build-pedantic-fix: config.mak.dev: fix typo when enabling -Wpedantic
2024-07-15Merge branch 'rs/clang-format-updates'Junio C Hamano
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
2024-07-15Merge branch 'am/gitweb-feed-use-committer-date'Junio C Hamano
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
2024-07-15Merge branch 'jk/tests-without-dns'Junio C Hamano
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
2024-07-15Merge branch 'gt/unit-test-oidmap'Junio C Hamano
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
2024-07-15Merge branch 'as/describe-broken-refresh-index-fix'Junio C Hamano
"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
2024-07-15Merge branch 'rj/t0613-no-longer-leaks'Junio C Hamano
A test that no longer leaks has been marked as such. * rj/t0613-no-longer-leaks: t0613: mark as leak-free
2024-07-15Merge branch 'rj/t0612-no-longer-leaks'Junio C Hamano
A test that no longer leaks has been marked as such. * rj/t0612-no-longer-leaks: t0612: mark as leak-free
2024-07-13var(win32): do report the GIT_SHELL_PATH that is actually usedJohannes Schindelin
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>
2024-07-13run-command: declare the `git_shell_path()` function globallyJohannes Schindelin
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>
2024-07-13run-command(win32): resolve the path to the Unix shell earlyJohannes Schindelin
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>
2024-07-13mingw(is_msys2_sh): handle forward slashes in the `sh.exe` path, tooJohannes Schindelin
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>
2024-07-13win32: override `fspathcmp()` with a directory separator-aware versionJohannes Schindelin
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>
2024-07-13strvec: declare the `strvec_push_nodup()` function globallyJohannes Schindelin
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>
2024-07-13run-command: refactor getting the Unix shell path into its own functionJohannes Schindelin
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>
2024-07-12cmake: fix build of `t-oidtree`Johannes Schindelin
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>
2024-07-12builtin/push: call set_refspecs after validating remoteKarthik Nayak
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>
2024-07-12Git 2.46-rc0v2.46.0-rc0Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-12Merge branch 'rs/simplify-submodule-helper-super-prefix-invocation'Junio C Hamano
Code clean-up. * rs/simplify-submodule-helper-super-prefix-invocation: submodule--helper: use strvec_pushf() for --super-prefix
2024-07-12Merge branch 'as/pathspec-h-typofix'Junio C Hamano
Typofix. * as/pathspec-h-typofix: pathspec: fix typo "glossary-context.txt" -> "glossary-content.txt"