You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Address Copilot review: fail (not skip) on non-fast-forward url changes
Two issues Copilot flagged on the earlier aie_api-only version of this
check still applied to the generalized version:
- A submodule whose .gitmodules url changed was unconditionally skipped,
meaning a bad merge that regresses both the pin and the url together
(reverting back to an old fork, say) would silently pass. Now the
ancestry check runs against the *new* url instead of being skipped;
it only passes if the new pin is provably a descendant of the old one
there. A genuine non-fast-forward remote switch still fails and must
be landed explicitly (e.g. an admin merge), rather than passing
silently just because "the url changed".
- git fetch failures (e.g. a pin that's unreachable from any ref on the
remote) surfaced as an unhandled CalledProcessError traceback instead
of a clear ::error:: message. Fetches now go through a non-raising
helper and a failed fetch is reported as "not reachable at all".
Also pass --filter=blob:none --no-tags on the ancestry-check fetches,
since they only need commit/tree objects.
Verified against three new synthetic sandbox cases: url switch to a
provably unrelated remote now fails instead of silently passing, and a
genuine fast-forward across a url switch (the #3262 pattern) still
passes with a note.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0 commit comments