summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
4 daysThe 14th batchHEADorigin/masterorigin/HEADmasterJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 daysMerge branch 'jk/test-curl-updates'Junio C Hamano
Update HTTP tests to adjust for changes in curl 8.18.0 * jk/test-curl-updates: t5563: add missing end-of-line in HTTP header t5551: handle trailing slashes in expected cookies output
4 daysMerge branch 'jc/object-read-stream-fix'Junio C Hamano
Fix a performance regression in recently graduated topic. * jc/object-read-stream-fix: odb: do not use "blank" substitute for NULL
4 daysMerge branch 'js/test-func-comment-fix'Junio C Hamano
Comment fix. * js/test-func-comment-fix: test_detect_ref_format: fix comment
4 daysMerge branch 'gf/clear-path-cache-cleanup'Junio C Hamano
Code clean-up. * gf/clear-path-cache-cleanup: repository: remove duplicate free of cache->squash_msg
4 daysMerge branch 'gf/maintenance-is-needed-fix'Junio C Hamano
Brown-paper-bag fix to a recently graduated 'kn/maintenance-is-needed' topic. * gf/maintenance-is-needed-fix: refs: dereference the value of the required pointer
4 daysMerge branch 'dk/ci-rust-fix'Junio C Hamano
Build fix. * dk/ci-rust-fix: rust: build correctly without GNU sed
4 daysMerge branch 'mh/doc-core-attributesfile'Junio C Hamano
Doc update. * mh/doc-core-attributesfile: docs: note the type of core.attributesfile
4 daysMerge branch 'ps/repack-avoid-noop-midx-rewrite'Junio C Hamano
Even when there is no changes in the packfile and no need to recompute bitmaps, "git repack" recomputed and updated the MIDX file, which has been corrected. * ps/repack-avoid-noop-midx-rewrite: midx-write: skip rewriting MIDX with `--stdin-packs` unless needed midx-write: extract function to test whether MIDX needs updating midx: fix `BUG()` when getting preferred pack without a reverse index
4 daysMerge branch 'js/test-symlink-windows'Junio C Hamano
Prepare test suite for Git for Windows that supports symbolic links. * js/test-symlink-windows: t7800: work around the MSYS path conversion on Windows t6423: introduce Windows-specific handling for symlinking to /dev/null t1305: skip symlink tests that do not apply to Windows t1006: accommodate for symlink support in MSYS2 t0600: fix incomplete prerequisite for a test case t0301: another fix for Windows compatibility t0001: handle `diff --no-index` gracefully mingw: special-case `open(symlink, O_CREAT | O_EXCL)` apply: symbolic links lack a "trustable executable bit" t9700: accommodate for Windows paths
4 daysMerge branch 'jt/doc-rev-list-filter-provided-objects'Junio C Hamano
Document "rev-list --filter-provided-objects" better. * jt/doc-rev-list-filter-provided-objects: docs: clarify git-rev-list(1) --filter behavior
4 daysMerge branch 'jt/repo-struct-more-objinfo'Junio C Hamano
More object database related information are shown in "git repo structure" output. * jt/repo-struct-more-objinfo: builtin/repo: add object disk size info to structure table builtin/repo: add disk size info to keyvalue stucture output builtin/repo: add inflated object info to structure table builtin/repo: add inflated object info to keyvalue structure output builtin/repo: humanise count values in structure output strbuf: split out logic to humanise byte values builtin/repo: group per-type object values into struct
6 daysThe 13th batchJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 daysMerge branch 'ap/packfile-promisor-object-optim'Junio C Hamano
The code path that enumerates promisor objects have been optimized to skip pointlessly parsing blob objects. * ap/packfile-promisor-object-optim: packfile: skip hash checks in add_promisor_object() object: apply skip_hash and discard_tree optimizations to unknown blobs too
6 daysMerge branch 'ja/doc-misc-fixes'Junio C Hamano
Various documentation fixes. * ja/doc-misc-fixes: doc: correct minor wording issues doc: fix asciidoc markup issues in several files
6 daysMerge branch 'jc/doc-commit-signoff-config'Junio C Hamano
Documentation update. * jc/doc-commit-signoff-config: signoff-option: linkify the reference to gitfaq commit: document that $command.signoff will not be added
6 daysMerge branch 'jc/c99-fam'Junio C Hamano
Require C99 style flexible array member support from all platforms. * jc/c99-fam: FLEX_ARRAY: require platforms to support the C99 syntax
11 daysThe 12th batchJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
11 daysMerge branch 'kn/fix-fetch-backfill-tag-with-batched-ref-updates'Junio C Hamano
"git fetch" that involves fetching tags, when a tag being fetched needs to overwrite existing one, failed to fetch other tags, which has been corrected. * kn/fix-fetch-backfill-tag-with-batched-ref-updates: fetch: fix failed batched updates skipping operations fetch: fix non-conflicting tags not being committed fetch: extract out reference committing logic
11 daysMerge branch 'rs/diff-files-r-find-copies-fix'Junio C Hamano
"git diff-files -R --find-copies-harder" has been taught to use the potential copy sources from the index correctly. * rs/diff-files-r-find-copies-fix: diff-files: fix copy detection
11 daysMerge branch 'jc/memzero-array'Junio C Hamano
Further application of MEMZERO_ARRAY() macro to the rest of the code base. * jc/memzero-array: cocci: use MEMZERO_ARRAY() a bit more coccicheck: emit the contents of cocci patch
11 daysMerge branch 'tc/memzero-array'Junio C Hamano
MEMZERO_ARRAY() helper is introduced to avoid clearing only the first N bytes of an N-element array whose elements are larger than a byte. * tc/memzero-array: contrib/coccinelle: pass include paths to spatch(1) git-compat-util: introduce MEMZERO_ARRAY() macro
11 daysMerge branch 'jc/completion-no-single-letter-options'Junio C Hamano
In-code comment update to clarify that single-letter options are outside of the scope of command line completion script. * jc/completion-no-single-letter-options: completion: clarify support for short options and arguments
11 daysMerge branch 'jc/submodule-add'Junio C Hamano
"git submodule add" to add a submodule under <name> segfaulted, when a submodule.<name>.something is already in .gitmodules file without defining where its submodule.<name>.path is, which has been corrected. * jc/submodule-add: submodule add: sanity check existing .gitmodules
11 daysMerge branch 'ds/doc-scalar-config'Junio C Hamano
Documentation updates. * ds/doc-scalar-config: scalar: document config settings scalar: alphabetize and simplify config scalar: remove stale config values scalar: use index.skipHash=true for performance scalar: annotate config file with "set by scalar"
12 daysThe 11th batchJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 daysMerge branch 'rs/t4014-git-version-string-fix'Junio C Hamano
Test fix. * rs/t4014-git-version-string-fix: t4014: support Git version strings with spaces
12 daysMerge branch 'kj/pull-options-decl-cleanup'Junio C Hamano
Code clean-up. * kj/pull-options-decl-cleanup: pull: move options[] array into function scope
12 daysMerge branch 'jc/macports-darwinports'Junio C Hamano
Makefile in-comment doc update. * jc/macports-darwinports: Makefile: help macOS novices by mentioning MacPorts
12 daysMerge branch 'rs/replay-wrong-onto-fix'Junio C Hamano
"git replay --onto=<commit> ...", when <commit> is mistyped, started to segfault with recent change, which has been corrected. * rs/replay-wrong-onto-fix: replay: move onto NULL check before first use
12 daysMerge branch 'kh/doc-replay-updates'Junio C Hamano
"git replay" documentation updates. * kh/doc-replay-updates: doc: replay: link section using markup replay: improve --contained and add to doc doc: replay: mention no output on conflicts
12 daysMerge branch 'ps/odb-alternates-object-sources'Junio C Hamano
Code refactoring around alternate object store. * ps/odb-alternates-object-sources: odb: write alternates via sources odb: read alternates via sources odb: drop forward declaration of `read_info_alternates()` odb: remove mutual recursion when parsing alternates odb: stop splitting alternate in `odb_add_to_alternates_file()` odb: move computation of normalized objdir into `alt_odb_usable()` odb: resolve relative alternative paths when parsing odb: refactor parsing of alternates to be self-contained
14 daysdoc: correct minor wording issuesJean-Noël Avila
* use imperative mood for consistency in options descriptions * add missing parenthesis * reword verbose phrase in git-repack.adoc Signed-off-by: Jean-Noël Avila <jn.avila@free.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 daysdoc: fix asciidoc markup issues in several filesJean-Noël Avila
* fix incorrect use of backticks for markup in git-checkout.adoc, git-worktree.adoc * switch tabs to spaces in git-send-email.adoc list items Signed-off-by: Jean-Noël Avila <jn.avila@free.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-19signoff-option: linkify the reference to gitfaqJunio C Hamano
The GitFAQ is a proper manual page in the section 7, so refer to it using the usual linkgit:stuff[7] syntax. Helped-by: Kristoffer Haugsbakk Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-19rust: build correctly without GNU sedD. Ben Knoble
From e509b5b8be (rust: support for Windows, 2025-10-15), we check cargo's information to decide which library to build. However, that check mistakenly used "sed -s" ("consider files as separate rather than as a single, continuous long stream"), which is a GNU extension. The build thus fails on macOS with "meson -Drust=enabled", which comes with BSD-derived sed. Instead, use the intended "sed -n" and print the matching section of the output. This failure mode likely went unnoticed on systems with GNU sed (common for developer machines and CI) because, in those instances, the output being matched by case is the full cargo output (which either contains the string "-windows-" or doesn't). Helped-by: Eric Sunshine <sunshine@sunshineco.com> Helped-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-19Merge branch 'ps/ci-rust' into dk/ci-rust-fixJunio C Hamano
* ps/ci-rust: rust: support for Windows ci: verify minimum supported Rust version ci: check for common Rust mistakes via Clippy rust/varint: add safety comments ci: check formatting of our Rust code ci: deduplicate calls to `apt-get update` t8020: fix test failure due to indeterministic tag sorting gitlab-ci: upload Meson test logs as JUnit reports gitlab-ci: drop workaround for Python certificate store on Windows gitlab-ci: ignore failures to disable realtime monitoring gitlab-ci: dedup instructions to disable realtime monitoring ci: enable Rust for breaking-changes jobs ci: convert "pedantic" job into full build with breaking changes BreakingChanges: announce Rust becoming mandatory varint: reimplement as test balloon for Rust varint: use explicit width for integers help: report on whether or not Rust is enabled Makefile: introduce infrastructure to build internal Rust library Makefile: reorder sources after includes meson: add infrastructure to build internal Rust library
2025-12-19refs: dereference the value of the required pointerGreg Funni
Currently, this always prints yes because required is non-null. This is the wrong behavior. The boolean must be dereferenced. Signed-off-by: Greg Funni <gfunni234@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-19repository: remove duplicate free of cache->squash_msgGreg Funni
Thankfully, it is set to NULL, so no security consequences. However, this is still a mistake that must be rectified. Signed-off-by: Greg Funni <gfunni234@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-19test_detect_ref_format: fix commentJohannes Schindelin
When 58aaf59133b (t: introduce GIT_TEST_DEFAULT_REF_FORMAT envvar, 2023-12-29) copy-edited the `test_detect_hash` function, the code comment was accidentally left unchanged. Let's adjust it. Noticed-by: Matthew John Cheetham <mjcheetham@outlook.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18t5563: add missing end-of-line in HTTP headerJeff King
In t5563, we test how various oddly-formatted WWW-Authenticate headers are passed through curl to git's credential subsystem (and ultimately out to credential helpers). One test, "access using basic auth with wwwauth header mixed line-endings" does something odd. It does not mix line endings at all (which must be CRLF according to the RFC anyway), but omits the line ending entirely for the final header! This means that the server produces an incomplete response. We send our final header, and then the newline which is meant to mark the end of headers (and the start of the body) becomes the line ending for that header. And there is no header/body separator in the output at all. Looking at strace, this is what the client reads: recvfrom(9, "WWW-Authenticate: FooBar param1=\"value1\"\r\n \r\n\tparam2=\"value2\"\r\nWWW-Authenticate: Basic realm=\"example.com\"", 16384, 0, NULL, NULL) = 106 recvfrom(9, "\n", 16384, 0, NULL, NULL) = 1 recvfrom(9, "", 16384, 0, NULL, NULL) = 0 The headers themselves are produced from the custom-auth.challenge file we write in the test (which is missing the final CRLF), and then the header/body separator comes from our lib-httpd/nph-custom-auth.sh CGI. (Ignore for a moment that it is producing a bare newline, which I think is a bug; it should be a CRLF but curl is happy with either). Older versions of curl seemed to be OK with the truncated output, but the upcoming 8.18.0 release seems to get confused. Specifically, since 67ae101666 (http: unfold response headers earlier, 2025-12-12) our request to the server fails with insufficient credentials. I traced far enough to see that curl does relay the header back to us, which we then pass to a credential helper, which gives us the correct username/password combination. But on our followup request, curl refuses to send the Authorization header (and so gets an HTTP 401 again). The change in curl's behavior is a bit unexpected, but since we are sending it garbage, it is hard to complain too much. Let's add the missing CRLF to the header. I _think_ this was just an oversight and not the intent of the test. And that the "mixed line-endings" really meant "mixed continuations", since we differ from the previous test in continuing with both space and tab. So I've likewise updated the test title to match that assumption. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18t5551: handle trailing slashes in expected cookies outputJeff King
We check in t5551 that curl updates the expected list of cookies after making a request. We do this by telling it to read and write cookies from a particular text file, and then checking that after curl runs, the file has the expected content. However, in the upcoming curl 8.18.0, the output file has changed slightly: curl will canonicalize the paths it writes, due to commit a093c93994 (cookie: only keep and use the canonical cleaned up path, 2025-12-07). In particular, it strips trailing slashes from the paths we see in the cookies.txt file. This doesn't matter to Git, as the cookie handling is all internal to curl. But our test is overly brittle and breaks as a result. We can fix it by matching either format. We'll expect the new format (without trailing slashes) and strip the slashes from curl's output before comparing. That lets us pass with both old and new versions (I tested against curl's 8_17_0 and rc-8_18_0-2 tags, which are respectively before and after the curl change). In theory it might be nice to try to future-proof this test more by looking only for the bits we care about, rather than a byte-wise comparison of the whole file. But after removing comments and blank lines (which we already do), we care about most of what's there. So it's not clear to me what a more liberal test would look like. Given that the format doesn't change all that often, it's probably OK to stop here and see if it ever breaks again. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18odb: do not use "blank" substitute for NULLJunio C Hamano
When various *object_info() functions are given an extended object info structure as NULL by a caller that does not want any details, the code uses a file-scope static blank_oi and passes it down to the helper functions they use, to avoid handling NULL specifically. The ps/object-read-stream topic graduated to 'master' recently however had a bug that assumed that two identically named file-scope static variables in two functions are the same, which of course is not the case. This made "git commit" take 0.38 seconds to 1508 seconds in some case, as reported by Aaron Plattner here: https://lore.kernel.org/git/f4ba7e89-4717-4b36-921f-56537131fd69@nvidia.com/ We _could_ move the blank_oi variable to the global scope in common section to fix this regression, but explicitly handling the NULL is a much safer fix. It would also reduce the chance of errors that somebody accidentally writes into blank_oi, making its contents dirty, which potentially will make subsequent calls into the function misbehave. By explicitly handling NULL input, we no longer have to worry about it. Reported-by: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18Merge branch 'ps/object-read-stream' into jc/object-read-stream-fixJunio C Hamano
* ps/object-read-stream: (32 commits) streaming: drop redundant type and size pointers streaming: move into object database subsystem streaming: refactor interface to be object-database-centric streaming: move logic to read packed objects streams into backend streaming: move logic to read loose objects streams into backend streaming: make the `odb_read_stream` definition public streaming: get rid of `the_repository` streaming: rely on object sources to create object stream packfile: introduce function to read object info from a store streaming: move zlib stream into backends streaming: create structure for filtered object streams streaming: create structure for packed object streams streaming: create structure for loose object streams streaming: create structure for in-core object streams streaming: allocate stream inside the backend-specific logic streaming: explicitly pass packfile info when streaming a packed object streaming: propagate final object type via the stream streaming: drop the `open()` callback function streaming: rename `git_istream` into `odb_read_stream` object-file: refactor writing objects via a stream ...
2025-12-18docs: note the type of core.attributesfileMatthew Hughes
The previous wording: > Path expansions are made the same way as for `core.excludesFile`. required one to check the docs for 'core.excludesFile' and from there the definition of the pathname variable type to understand the path expansion behaviour of this variable. Instead, just link directly to the pathname type. This change is basically the same rewording as was done to 'core.excludesFile' in dca83abd (config: describe 'pathname' value type, 2016-04-29). Signed-off-by: Matthew Hughes <matthewhughes934@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18builtin/repo: add object disk size info to structure tableJustin Tobler
Similar to a prior commit, update the table output format for the git-repo(1) structure command to display the total object disk usage by object type. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18builtin/repo: add disk size info to keyvalue stucture outputJustin Tobler
Similar to a prior commit, extend the keyvalue and nul output formats of the git-repo(1) structure command to additionally provide info regarding total object disk sizes by object type. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18builtin/repo: add inflated object info to structure tableJustin Tobler
Update the table output format for the git-repo(1) structure command to begin printing the total inflated object size info by object type. To be more human-friendly, larger values are scaled down and displayed with the appropriate unit prefix. Output for the keyvalue and nul formats remains unchanged. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18builtin/repo: add inflated object info to keyvalue structure outputJustin Tobler
The structure subcommand for git-repo(1) outputs basic count information for objects and references. Extend this output to also provide information regarding total size of inflated objects by object type. For now, object size by object type info is only added to the keyvalue and nul output formats. In a subsequent commit, this info is also added to the table format. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-12-18builtin/repo: humanise count values in structure outputJustin Tobler
The table output format for the git-repo(1) structure subcommand is used by default and intended to provide output to users in a human-friendly manner. When the reference/object count values in a repository are large, it becomes more cumbersome for users to read the values. For larger values, update the table output format to instead produce more human-friendly count values that are scaled down with the appropriate unit prefix. Output for the keyvalue and nul formats remains unchanged. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>