Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/t
AgeCommit message (Collapse)Author
2024-01-24Merge branch 'kl/allow-working-in-dot-git-in-non-bare-repository' into seenseenJunio C Hamano
Loosen "disable repository discovery of a bare repository" check, triggered by setting safe.bareRepository configuration variable to 'explicit', to exclude the ".git/" directory inside a non-bare repository from the check. Comments? * kl/allow-working-in-dot-git-in-non-bare-repository: setup: allow cwd=.git w/ bareRepository=explicit
2024-01-24Merge branch 'ad/custom-merge-placeholder-for-symbolic-pathnames' into seenJunio C Hamano
The labels on conflict markers for the common ancestor, our version, and the other version are available to custom 3-way merge driver via %S, %X, and %Y placeholders. * ad/custom-merge-placeholder-for-symbolic-pathnames: merge-ll: expose revision names to custom drivers
2024-01-24Merge branch 'ps/tests-with-ref-files-backend' into seenJunio C Hamano
Prepare existing tests on refs to work better with non-default backends. * ps/tests-with-ref-files-backend: t: mark tests regarding git-pack-refs(1) to be backend specific t5526: break test submodule differently t1419: mark test suite as files-backend specific t1302: make tests more robust with new extensions t1301: mark test for `core.sharedRepository` as reffiles specific t1300: make tests more robust with non-default ref backends
2024-01-24Merge branch 'ak/color-decorate-symbols' into seenJunio C Hamano
A new config for coloring. * ak/color-decorate-symbols: log: add color.decorate.pseudoref config variable refs: exempt pseudorefs from pattern prefixing refs: add pseudorefs array and iteration functions log: add color.decorate.ref config variable log: add color.decorate.symbol config variable log: use designated inits for decoration_colors config: restructure color.decorate documentation
2024-01-24Merge branch 'tb/path-filter-fix' into seenJunio C Hamano
The Bloom filter used for path limited history traversal was broken on systems whose "char" is unsigned; update the implementation and bump the format version to 2. * tb/path-filter-fix: bloom: introduce `deinit_bloom_filters()` commit-graph: reuse existing Bloom filters where possible object.h: fix mis-aligned flag bits table commit-graph: drop unnecessary `graph_read_bloom_data_context` commit-graph.c: unconditionally load Bloom filters bloom: prepare to discard incompatible Bloom filters bloom: annotate filters with hash version commit-graph: new Bloom filter version that fixes murmur3 repo-settings: introduce commitgraph.changedPathsVersion t4216: test changed path filters with high bit paths t/helper/test-read-graph: implement `bloom-filters` mode bloom.h: make `load_bloom_filter_from_graph()` public t/helper/test-read-graph.c: extract `dump_graph_info()` gitformat-commit-graph: describe version 2 of BDAT commit-graph: ensure Bloom filters are read with consistent settings revision.c: consult Bloom filters for root commits t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`
2024-01-24Merge branch 'tb/pair-chunk-expect' into seenJunio C Hamano
Further code clean-up. * tb/pair-chunk-expect: midx: read `OOFF` chunk with `pair_chunk_expect()` midx: read `OIDL` chunk with `pair_chunk_expect()` commit-graph: read `BIDX` chunk with `pair_chunk_expect()` commit-graph: read `GDAT` chunk with `pair_chunk_expect()` commit-graph: read `CDAT` chunk with `pair_chunk_expect()` commit-graph: read `OIDL` chunk with `pair_chunk_expect()` chunk-format: introduce `pair_chunk_expect()` helper
2024-01-24Merge branch 'eb/hash-transition' into seenJunio C Hamano
Teach a repository to work with both SHA-1 and SHA-256 hash algorithms. * eb/hash-transition: (30 commits) t1016-compatObjectFormat: add tests to verify the conversion between objects t1006: test oid compatibility with cat-file t1006: rename sha1 to oid test-lib: compute the compatibility hash so tests may use it builtin/ls-tree: let the oid determine the output algorithm object-file: handle compat objects in check_object_signature tree-walk: init_tree_desc take an oid to get the hash algorithm builtin/cat-file: let the oid determine the output algorithm rev-parse: add an --output-object-format parameter repository: implement extensions.compatObjectFormat object-file: update object_info_extended to reencode objects object-file-convert: convert commits that embed signed tags object-file-convert: convert commit objects when writing object-file-convert: don't leak when converting tag objects object-file-convert: convert tag objects when writing object-file-convert: add a function to convert trees between algorithms object: factor out parse_mode out of fast-import and tree-walk into in object.h cache: add a function to read an OID of a specific algorithm tag: sign both hashes commit: export add_header_signature to support handling signatures on tags ...
2024-01-24Merge branch 'cp/unit-test-prio-queue' into jchJunio C Hamano
Migrate priority queue test to unit testing framework. * cp/unit-test-prio-queue: tests: move t0009-prio-queue.sh to the new unit testing framework
2024-01-24Merge branch 'cp/apply-core-filemode' into jchJunio C Hamano
"git apply" on a filesystem without filemode support have learned to take a hint from what is in the index for the path, even when not working with the "--index" or "--cached" option, when checking the executable bit match what is required by the preimage in the patch. * cp/apply-core-filemode: apply: code simplification apply: correctly reverse patch's pre- and post-image mode bits apply: ignore working tree filemode when !core.filemode
2024-01-24Merge branch 'kn/for-all-refs' into jchJunio C Hamano
"git for-each-ref" filters its output with prefixes given from the command line, but it did not honor an empty string to mean "pass everything", which has been corrected. * kn/for-all-refs: for-each-ref: avoid filtering on empty pattern refs: introduce `refs_for_each_all_refs()` refs: extract out `loose_fill_ref_dir_regular_file()` refs: make `is_pseudoref_syntax()` stricter refs: expose `is_pseudoref_syntax()`
2024-01-24Merge branch 'jc/reffiles-tests' into jchJunio C Hamano
Tests on ref API are moved around to prepare for reftable. * jc/reffiles-tests: t5312: move reffiles specific tests to t0601 t4202: move reffiles specific tests to t0600 t3903: make drop stash test ref backend agnostic t1503: move reffiles specific tests to t0600 t1415: move reffiles specific tests to t0601 t1410: move reffiles specific tests to t0600 t1406: move reffiles specific tests to t0600 t1405: move reffiles specific tests to t0601 t1404: move reffiles specific tests to t0600 t1414: convert test to use Git commands instead of writing refs manually remove REFFILES prerequisite for some tests in t1405 and t2017 t3210: move to t0601
2024-01-24Merge branch 'jx/remote-archive-over-smart-http' into jchJunio C Hamano
"git archive --remote=<remote>" learned to talk over the smart http (aka stateless) transport. * jx/remote-archive-over-smart-http: transport-helper: call do_take_over() in process_connect transport-helper: call do_take_over() in connect_helper http-backend: new rpc-service for git-upload-archive transport-helper: protocol v2 supports upload-archive remote-curl: supports git-upload-archive service transport-helper: no connection restriction in connect_helper
2024-01-24Merge branch 'rj/advice-disable-how-to-disable' into jchJunio C Hamano
All conditional "advice" messages show how to turn them off, which becomes repetitive. Add a configuration variable to omit the instruction. * rj/advice-disable-how-to-disable: advice: allow disabling the automatic hint in advise_if_enabled()
2024-01-24Merge branch 'rs/parse-options-with-keep-unknown-abbrev-fix' into jchJunio C Hamano
"git diff --no-rename A B" did not disable rename detection but did not trigger an error from the command line parser. * rs/parse-options-with-keep-unknown-abbrev-fix: parse-options: simplify positivation handling parse-options: fully disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN
2024-01-24Merge branch 'pb/ci-github-skip-logs-for-broken-tests' into jchJunio C Hamano
GitHub CI update. * pb/ci-github-skip-logs-for-broken-tests: ci(github): also skip logs of broken test cases
2024-01-24Merge branch 'al/t2400-depipe' into jchJunio C Hamano
Coding style fix. * al/t2400-depipe: t2400: avoid losing exit status to pipes
2024-01-24Merge branch 'gt/t0024-style-fixes' into jchJunio C Hamano
Coding style fix. * gt/t0024-style-fixes: t0024: style fix t0024: avoid losing exit status to pipes
2024-01-24Merge branch 'en/diffcore-delta-final-line-fix' into jchJunio C Hamano
Rename detection logic ignored the final line of a file if it is an incomplete line. * en/diffcore-delta-final-line-fix: diffcore-delta: avoid ignoring final 'line' of file
2024-01-24Merge branch 'tc/show-ref-exists-fix' into jchJunio C Hamano
Update to a new feature recently added, "git show-ref --exists". * tc/show-ref-exists-fix: builtin/show-ref: treat directory as non-existing in --exists
2024-01-24Merge branch 'vd/fsck-submodule-url-test' into jchJunio C Hamano
Tighten URL checks fsck makes in a URL recorded for submodules. * vd/fsck-submodule-url-test: submodule-config.c: strengthen URL fsck check t7450: test submodule urls test-submodule: remove command line handling for check-name submodule-config.h: move check_submodule_url
2024-01-24Merge branch 'kh/maintenance-use-xdg-when-it-should' into jchJunio C Hamano
When $HOME/.gitignore is missing but XDG config file available, we should write into the latter, not former. "git gc" and "git maintenance" wrote into a wrong "global config" file, which have been corrected. * kh/maintenance-use-xdg-when-it-should: maintenance: use XDG config if it exists config: factor out global config file retrieval config: rename global config function config: format newlines
2024-01-24Merge branch 'gt/test-commit-o-i-options' into jchJunio C Hamano
A few tests to "git commit -o <pathspec>" and "git commit -i <pathspec>" has been added. * gt/test-commit-o-i-options: t7501: add tests for --amend --signoff t7501: add tests for --include and --only
2024-01-24Merge branch 'ps/gitlab-ci-macos' into jchJunio C Hamano
CI for GitLab learned to drive macOS jobs. * ps/gitlab-ci-macos: ci: add macOS jobs to GitLab CI ci: make p4 setup on macOS more robust ci: handle TEST_OUTPUT_DIRECTORY when printing test failures Makefile: detect new Homebrew location for ARM-based Macs t7527: decrease likelihood of racing with fsmonitor daemon
2024-01-24Merge branch 'ps/completion-with-reftable-fix' into jchJunio C Hamano
Completion update to prepare for reftable * ps/completion-with-reftable-fix: completion: treat dangling symrefs as existing pseudorefs completion: silence pseudoref existence check completion: improve existence check for pseudo-refs t9902: verify that completion does not print anything completion: discover repo path in `__git_pseudoref_exists ()`
2024-01-24Merge branch 'jt/tests-with-reftable' into jchJunio C Hamano
Tweak a few tests not to manually modify the reference database (hence easier to work with other backends like reftable). * jt/tests-with-reftable: t5541: remove lockfile creation t1401: remove lockfile creation
2024-01-24Merge branch 'al/unit-test-ctype' into jchJunio C Hamano
Move test-ctype helper to the unit-test framework. * al/unit-test-ctype: unit-tests: rewrite t/helper/test-ctype.c as a unit test
2024-01-23t5312: move reffiles specific tests to t0601John Cai
Move a few tests into t0601 since they specifically test the packed-refs file and thus are specific to the reffiles backend. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t4202: move reffiles specific tests to t0600John Cai
Move two tests into t0600 since they write loose reflog refs manually and thus are specific to the reffiles backend. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t3903: make drop stash test ref backend agnosticJohn Cai
In this test, the calls to cut(1) are only used to verify that the contents of the reflog entry look as expected. By replacing these with git-reflog(1) calls, we can make this test ref-backend agnostic. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t1503: move reffiles specific tests to t0600John Cai
Move this test to t0600 with other reffiles specific tests since it checks for loose refs and is specific to the reffiles backend. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t1415: move reffiles specific tests to t0601John Cai
Move this test into t0601 with other reffiles pack-refs specific tests since it checks for individual loose refs and thus is specific to the reffiles backend. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t1410: move reffiles specific tests to t0600John Cai
Move these tests to t0600 with other reffiles specific tests since they do things like take a lock on an individual ref, and write directly into the reflog refs. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t1406: move reffiles specific tests to t0600John Cai
Move this test to t0600 with the rest of the tests that are specific to reffiles. This test reaches into reflog directories manually, and so are specific to reffiles. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t1405: move reffiles specific tests to t0601John Cai
Move this test to t0601 with other reffiles specific pack-refs tests since it is reffiles specific in that it looks into the loose refs directory for an assertion. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t1404: move reffiles specific tests to t0600John Cai
These tests modify loose refs manually and are specific to the reffiles backend. Move these to t0600 to be part of a test suite of reffiles specific tests. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t1414: convert test to use Git commands instead of writing refs manuallyJohn Cai
This test can be re-written to use Git commands rather than writing a manual ref in the reflog. This way this test no longer needs the REFFILES prerequisite. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23remove REFFILES prerequisite for some tests in t1405 and t2017John Cai
These tests are compatible with the reftable backend and thus do not need the REFFILES prerequisite. Even though 53af25e4 (t1405: mark test that checks existence as REFFILES, 2022-01-31) and 53af25e4 (t1405: mark test that checks existence as REFFILES, 2022-01-31) marked these tests to require REFFILES, the reftable backend in its current state does indeed work with these tests. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23t3210: move to t0601John Cai
Move t3210 to t0601, since these tests are reffiles specific in that they modify loose refs manually. This is part of the effort to categorize these tests together based on the ref backend they test. When we upstream the reftable backend, we can add more tests to t06xx. This way, all tests that test specific ref backend behavior will be grouped together. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-23ci(github): also skip logs of broken test casesPhilippe Blain
When a test fails in the GitHub Actions CI pipeline, we mark it up using special GitHub syntax so it stands out when looking at the run log. We also mark up "fixed" test cases, and skip passing tests since we want to concentrate on the failures. The finalize_test_case_output function in test-lib-github-workflow-markup.sh which performs this markup is however missing a fourth case: "broken" tests, i.e. tests using 'test_expect_failure' to document a known bug. This leads to these "broken" tests appearing along with any failed tests, potentially confusing the reader who might not be aware that "broken" is the status for 'test_expect_failure' tests that indeed failed, and wondering what their commits "broke". Also skip these "broken" tests so that only failures and fixed tests stand out. Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com> Acked-by: Victoria Dye <vdye@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-22tests: move t0009-prio-queue.sh to the new unit testing frameworkChandra Pratap
t/t0009-prio-queue.sh along with t/helper/test-prio-queue.c unit tests Git's implementation of a priority queue. Migrate the test over to the new unit testing framework to simplify debugging and reduce test run-time. Refactor the required logic and add a new test case in addition to porting over the original ones in shell. Signed-off-by: Chandra Pratap <chandrapratap3519@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-22transport-helper: call do_take_over() in connect_helperJiang Xin
After successfully connecting to the smart transport by calling process_connect_service() in connect_helper(), run do_take_over() to replace the old vtable with a new one which has methods ready for the smart transport connection. This fixes the exit code of git-archive in test case "archive remote http repository" of t5003. The connect_helper() function is used as the connect method of the vtable in "transport-helper.c", and it is called by transport_connect() in "transport.c" to setup a connection. The only place that we call transport_connect() so far is in "builtin/archive.c". Without running do_take_over(), it may fail to call transport_disconnect() in run_remote_archiver() of "builtin/archive.c". This is because for a stateless connection and a service like "git-upload-archive", the remote helper may receive a SIGPIPE signal and exit early. Call do_take_over() to have a graceful disconnect method, so that we still call transport_disconnect() even if the remote helper exits early. Helped-by: Linus Arver <linusa@google.com> Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-22http-backend: new rpc-service for git-upload-archiveJiang Xin
Add new rpc-service "upload-archive" in http-backend to add server side support for remote archive over HTTP/HTTPS protocols. Also add new test cases in t5003. In the test case "archive remote http repository", git-archive exits with a non-0 exit code even though we create the archive correctly. It will be fixed in a later commit. Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-21setup: allow cwd=.git w/ bareRepository=explicitKyle Lippincott
The safe.bareRepository setting can be set to 'explicit' to disallow implicit uses of bare repositories, preventing an attack [1] where an artificial and malicious bare repository is embedded in another git repository. Unfortunately, some tooling uses myrepo/.git/ as the cwd when executing commands, and this is blocked when safe.bareRepository=explicit. Blocking is unnecessary, as git already prevents nested .git directories. Teach git to not reject uses of git inside of the .git directory: check if cwd is .git (or a subdirectory of it) and allow it even if safe.bareRepository=explicit. [1] https://github.com/justinsteven/advisories/blob/main/2022_git_buried_bare_repos_and_fsmonitor_various_abuses.md Signed-off-by: Kyle Lippincott <spectral@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-20t2400: avoid losing exit status to pipesAchu Luma
The exit code of the preceding command in a pipe is disregarded. So if that preceding command is a Git command that fails, the test would not fail. Instead, by saving the output of that Git command to a file, and removing the pipe, we make sure the test will fail if that Git command fails. Signed-off-by: Achu Luma <ach.lumap@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-20parse-options: fully disable option abbreviation with PARSE_OPT_KEEP_UNKNOWNRené Scharfe
baa4adc66a (parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN, 2019-01-27) turned off support for abbreviated options when the flag PARSE_OPT_KEEP_UNKNOWN is given, as any shortened option could also be an abbreviation for one of the unknown options. The code for handling abbreviated options is guarded by an if, but it can also be reached via goto. baa4adc66a only blocked the first way. Add the condition to the other ones as well. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-20t0024: style fixGhanshyam Thakkar
t0024 has multiple command invocations on a single line, which goes against the style described in CodingGuidelines, thus fix that. Also, use the -C flag to give the destination when using $TAR, therefore, not requiring a subshell. Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-20t0024: avoid losing exit status to pipesGhanshyam Thakkar
Replace pipe with redirection operator '>' to store the output to a temporary file after 'git archive' command since the pipe will swallow the command's exit code and a crash won't necessarily be noticed. Also fix an unwanted space after redirection '>' to match the style described in CodingGuidelines. Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-01-20Merge branch 'cp/t4129-pipefix'Junio C Hamano
Test update. * cp/t4129-pipefix: t4129: prevent loss of exit code due to the use of pipes
2024-01-20Merge branch 'tb/fetch-all-configuration'Junio C Hamano
"git fetch" learned to pay attention to "fetch.all" configuration variable, which pretends as if "--all" was passed from the command line when no remote parameter was given. * tb/fetch-all-configuration: fetch: add new config option fetch.all
2024-01-20for-each-ref: avoid filtering on empty patternKarthik Nayak
When the user uses an empty string pattern (""), we don't match any refs in git-for-each-ref(1). This is because in git-for-each-ref(1), we use path based matching and an empty string doesn't match any path. In this commit we change this behavior by making empty string pattern match all references. This is done by introducing a new flag `FILTER_REFS_NO_FILTER` in `ref-filter.c`, which uses the newly introduced `refs_for_each_all_refs()` function to iterate over all the refs in the repository. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>