modules/ is gitignored, so local Gin edits cannot live in the submodule.
They are stored in patches/ and re-applied (idempotently) before every
configure and build via 'make apply-patches'.
Also improve the submodule guard: git submodule update is a no-op here,
so print concrete restore instructions instead.