Expand description
Submodule recursion for git push (--recurse-submodules).
Mirrors the subset of Git’s submodule.c / transport.c logic needed for
check, on-demand, and only modes over local (file) transport.
Enums§
- Push
Recurse Submodules - How
git pushshould recurse into submodules.
Functions§
- collect_
changed_ gitlinks_ for_ push - Collect submodule paths and the gitlink OIDs introduced along the walk
git log <tips> --not --remotes=<remote>, using merge-aware diffs like Git’scollect_changed_submodules. - find_
unpushed_ submodule_ paths - Submodule paths that still need to be pushed to
remote_name(non-empty rev-list against remote-tracking). - format_
unpushed_ submodules_ error - Print Git’s standard “unpushed submodule” error and return a formatted anyhow-friendly message.
- head_
ref_ short_ name - Resolve
HEADingit_dirto a short branch name when symbolic;"HEAD"when detached. - parse_
push_ recurse_ submodules_ arg - Parse
--recurse-submodules=<value>orpush.recurseSubmodules/submodule.recurse. - submodule_
commits_ fully_ pushed - Whether the gitlink OIDs are commits present in the submodule repo and reachable from some ref.
- submodule_
gitlinks_ touched_ in_ range - True when walking superproject commits in
(excl..incl]introduces or changes a submodule gitlink (matches Git’ssubmodule_touches_in_rangeinsubmodule.c). - submodule_
needs_ push_ to_ remote - True if
oidscontains commits not reachable fromrefs/remotes/<remote_name>/in the submodule. - submodule_
worktree_ path - Work tree path for a submodule at
rel_pathin the superproject. - validate_
submodule_ push_ refspecs - Validate refspecs for nested submodule push (
submodule--helper push-checksubset). - verify_
push_ gitlinks_ are_ commits - Ensure every gitlink OID in
changednames a commit object (not a tag/tree/blob).