Skip to content

Submodule Scenarios

submodule-with-history

Parent repo with 4 commits + vendor/lib submodule (clean pin, 4 commits, branch = main). For testing recursive submodule navigation and submodule status display.

Contracts:

  • Parent has 4 commits on main
  • vendor/lib submodule exists with branch = main
  • Submodule has 4 commits
  • Submodule pin is clean (not modified)

Building out-of-date submodule states

Use the insideSubmodule scope to add commits that don’t update the parent’s pin:

import { fromScenario, insideSubmodule, addCommit, chain } from '@gfargo/git-scenarios'
const repo = await fromScenario('submodule-with-history',
insideSubmodule('vendor/lib', chain(
addCommit({ message: 'feat: post-pin work', files: { 'new.ts': 'new\n' } }),
)),
)
// git submodule status now shows `+` (modified — pin lags HEAD)