test: add gitoxide integration test coverage and move matrix to Rust xtask#208
Merged
test: add gitoxide integration test coverage and move matrix to Rust xtask#208
Conversation
Isolate integration tests from user's global git config by setting GIT_CONFIG_GLOBAL to a test-specific file. Run the full 184-test suite twice (git CLI + gitoxide backend) to ensure both code paths work. Fix four gitoxide bugs revealed by the dual-pass testing: - Use workdir().is_some() instead of !is_bare() for linked worktrees - Use full status iterator to detect staged (HEAD-vs-index) changes - Disable empty directory emission to match git CLI behavior - Use merge_base() for accurate rev_list_count range calculations Fixes #207 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move the dual-pass test matrix logic from shell scripts into a new `test-matrix` xtask subcommand. Shell scripts become stateless single-pass runners, while Rust manages which configurations to test. - Add TestMatrix subcommand with MatrixEntry data model and runner - Simplify test_all.sh to single-pass (remove DAFT_TEST_GITOXIDE support) - Make GIT_CONFIG_GLOBAL conditional in test_framework.sh - Remove dead helpers: enable_gitoxide_global, cleanup_work_dir, reset_test_counters - Update mise tasks to use cargo run --package xtask -- test-matrix - Add test-integration-matrix task for running specific entries Fixes #207 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This was referenced Feb 15, 2026
Merged
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
workdir().is_some()instead of!is_bare()for linked worktrees (gitoxide reportsis_bare() == truefor linked worktrees of bare repos)into_iter) instead ofinto_index_worktree_iterto detect staged (HEAD-vs-index) changesmerge_base()for accuraterev_list_countrange calculations instead of walking until the "from" commit is hitGIT_CONFIG_GLOBALto a test-specific filetest-matrixxtask subcommand that drives integration tests across a matrix of configurations (default + gitoxide), replacing the dual-pass shell orchestrationtest_all.shto a stateless single-pass runner; matrix logic now lives in RustTest plan
mise run test-unitpasses (including new gitoxide and xtask matrix tests)mise run clippypasses with zero warningsmise run test-integrationruns full matrix (default + gitoxide)mise run test-integration-gitoxideconvenience alias workscargo run --package xtask -- test-matrix --listlists available entriescd tests/integration && ./test_clone.shFixes #207
🤖 Generated with Claude Code