Glossary

The terms that this documentation uses, each with a short definition and a link to the page that describes it.

behind

The state of a submodule for which update would select another mode, ref or commit than the lock entry records, or which has no lock entry yet. See States.

configured ref

The value of lsm-ref in .gitmodules: a branch name, a tag name, a tag pattern or a commit SHA. See .gitmodules.

dirty

The state of a submodule whose working tree has uncommitted changes to tracked files. update refuses such a submodule. See States.

drift

The state of a submodule whose HEAD differs from the locked commit, or whose locked tag now points to another commit or no longer exists. See States.

dry run

A run of update --dry-run, which resolves the targets in the local refs and prints what would change, without fetching or changing anything. See Output.

The entry in a tree or in the index of the superproject that records the commit of a submodule. update stages it, and verify compares the one in HEAD with the lock file. See How LazySubmodules works.

lock entry

The section of a submodule in the lock file, with the keys mode, ref and commit. See .lsm.lock.

lock file

.lsm.lock, the file in the superproject that records the mode, the resolved ref and the commit of each managed submodule. See .lsm.lock.

locked commit

The full commit SHA that a lock entry records.

locked ref

The ref that a lock entry records: the selected tag in tag and tag-pattern mode, the branch in branch mode, and the commit in commit mode.

managed

A submodule is managed when .gitmodules has an lsm-mode key for it. Commands without names work on the managed submodules. See .gitmodules.

missing-ref

The state of a submodule whose configured ref is invalid or does not resolve in the local refs. update refuses such a submodule. See States.

moved tag

A tag that was moved to another commit upstream, usually with a force push. After fetch, the submodule shows drift and verify fails. See Detect moved tags.

native branch key

The Git key submodule.<name>.branch in .gitmodules, which git submodule update --remote uses. LazySubmodules writes it in branch mode and removes it in the other modes. See The native branch key.

network policy

The rule that only fetch, update --fetch and add use the network. See Commands.

ok

The state of a submodule whose HEAD is the locked commit, with no other target available locally. See States.

porcelain v1 format

The stable, TAB-separated output of status --porcelain=v1 for scripts. See Porcelain format v1.

pre-release

A tag with a - after its first digit, such as v6.6.11-rc1 or v3.0.0-rc.2. A tag pattern selects pre-releases only with --include-prerelease, or when the lock file records one already. See Tracking modes and resolution.

refused

The outcome of a command that would be unsafe, such as an update of a dirty submodule. The command exits with status 3, and a refused update moves no submodule. See Exit codes.

resolution

Finding the commit that a submodule should be at, from its tracking mode, its configured ref and the local refs. Also called resolving. See Tracking modes and resolution.

state

The one-word summary that status reports for a submodule: ok, behind, drift, dirty, uninitialized, missing-ref or unmanaged. See States.

submodule

A Git repository that is embedded in the superproject at a path and recorded by a gitlink.

submodule name

The name of the submodule’s section in .gitmodules, such as u-boot. Commands take names, not paths. The name can differ from the path, such as bootloader/u-boot. See General rules.

superproject

The Git repository that contains the submodules, and .gitmodules and .lsm.lock at its top level.

tag pattern

A glob, as accepted by git tag --list, that selects the highest matching version tag, such as v6.6.*. Also the name of the tracking mode tag-pattern. See Tracking modes and resolution.

target

The commit and ref that update selects for a submodule by resolution.

terminal interface

The interactive, full-screen interface that lazysubmodules tui starts; also called TUI. See Terminal interface keys.

tracking configuration

The keys lsm-mode and lsm-ref of a submodule in .gitmodules. add and set write them. See .gitmodules.

tracking mode

How a submodule selects its target: branch, tag, tag-pattern or commit, stored as lsm-mode. See Tracking modes and resolution.

uninitialized

The state of a submodule that is not checked out. update initializes it offline when its repository still exists, and otherwise needs --fetch. See States.

unmanaged

The state of a submodule without an lsm-mode key. LazySubmodules shows it but does not change it until set puts it under management. See States.