{"version":"2.1.236","anchor":"change-detection-ignores-custom-diff-drivers-and-submodules","canonical_anchor":"change-detection-ignores-custom-diff-drivers-and-submodules","heading":"Change detection ignores custom diff drivers and submodules","tier":"notice","area":"Git Integration","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.236\/e\/change-detection-ignores-custom-diff-drivers-and-submodules","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.236","markdown":"### Change detection ignores custom diff drivers and submodules\n\nChange detection no longer runs your external diff tool or scans submodules, so it's faster.\n\n**What**\n\nThe internal git call Claude Code uses to detect which files have changed now runs with `--no-ext-diff` and `--ignore-submodules=all`. A custom diff program set through git's `diff.external` setting is no longer invoked by that call, and activity inside submodules no longer affects the result. This removes a source of slowdowns and odd output for anyone with an external diff tool configured, and it applies to everyone with no flag or setting to turn it on.\n\n**Details**\n\n- `--no-ext-diff` stops git from handing the comparison to a `diff.external` driver from your git settings, so Claude Code's own diffing stays internal and predictable.\n- `--ignore-submodules=all` means churn in submodules neither changes the set of files reported as modified nor slows the check down.\n- Both arguments join the `-z` and `--no-renames` arguments already passed on the same invocation.\n\n**Evidence**\n\n`\"--ignore-submodules=all\",`, `--no-ext-diff`\n\n- Area: Git Integration\n- Tier: You'll notice\n- Useful: 4\/5\n- Signal: 2\/5"}