submodule

For git-submodule(1).

Overview

Manage git submodules using GitSubmoduleManager (collection-level) and GitSubmoduleEntryCmd (per-submodule operations).

Note

GitSubmoduleCmd is the legacy interface. Use git.submodules (GitSubmoduleManager) for the new Manager/Cmd pattern.

Examples

List submodules — a repository without any simply returns an empty list — and sync submodule URLs into .git/config:

>>> from libvcs.cmd.git import Git
>>> git = Git(path=example_git_repo.path)
>>> git.submodules.ls()
[]
>>> git.submodules.sync()
''

Register a submodule with add(), then initialize and fetch it through the entry’s init() and update() — each method’s API reference below carries a runnable example.

API Reference

class libvcs.cmd.git.GitSubmoduleManager
class libvcs.cmd.git.GitSubmoduleManager

Bases: object

Traverse git submodules with QueryList.

class libvcs.cmd.git.GitSubmodule
class libvcs.cmd.git.GitSubmodule

Bases: object

Represent a git submodule.

class libvcs.cmd.git.GitSubmoduleEntryCmd
class libvcs.cmd.git.GitSubmoduleEntryCmd

Bases: object

Run git commands targeting a specific submodule.

class libvcs.cmd.git.GitSubmoduleCmd
class libvcs.cmd.git.GitSubmoduleCmd

Bases: object

Run git submodule commands (low-level, use GitSubmoduleManager).