manifest
CLI reference
Description
Inspect and manage manifests. Without a directory-management flag, manifest loads the workspace manifest, fetches remotes, and rewrites each project's revision to the corresponding commit hash, then prints the result (Google or native XML). That path is single-threaded and can take a while on large workspaces. --revision-as-head / -r selects the same rewrite task
explicitly.
Separately, manifest manages manifest directories in the user config
(named catalogs of known manifest repositories used by init -p): list,
list projects, add, or delete.
manifest merge flattens two or more local manifest files into one XML file
(ADR-0038). Native XML has no include element; this writes a single file for
init / sync.
Usage
esysrepo manifest [options ...]
esysrepo manifest merge FILE FILE... [-o PATH]
Options
Available options:
--revision-as-head/-r: Rewrite revisions to commit hashes (same as the default when no directory flag is given)--output-file/-oFILE: Write the rewritten manifest to FILE instead of stdout--list-dirs/-l: List configured manifest directories--list-projects/-p[NAME]: List projects from one or all manifest directories--add-dir/-aNAME: Add a manifest directory; pass SSH and HTTPS URLs as positional arguments (ssh://…andhttps://…)--del-dir/-dNAME: Delete a manifest directory by name--output-file/-oPATH: For merge, write the combined manifest. PATH is a file, or a folder (existing directory, or a path ending with/or\\). A folder uses.esysrepo.manifest.xml(native) ordefault.xml(--format google). Omit-oto print to stdout--format native|google: Merge output format (defaultnative).googlerequires every input to be Google XML--on-conflict fail|prefer-first|prefer-last: Merge collision policy (defaultfail)--strict: Fail on unknown XML in merge inputs (default tolerant)--folder/-fPATH: Workspace folder (common option; default is the current directory)
Examples
Rewrite the workspace manifest revisions to commit hashes on stdout:
esysrepo manifest
or equivalently:
esysrepo manifest -r
Write the result to a file:
esysrepo manifest -r -o pinned.xml
List configured manifest directories:
esysrepo manifest --list-dirs
List projects from those directories:
esysrepo manifest --list-projects
Add a manifest directory:
esysrepo manifest --add-dir myproj ssh://git@example.com/org/manifest.git https://example.com/org/manifest.git
Delete a manifest directory:
esysrepo manifest --del-dir myproj
Merge two native manifests into one file:
esysrepo manifest merge a.xml b.xml -o combined.xml
Merge into a folder (writes .esysrepo.manifest.xml there):
esysrepo manifest merge a.xml b.xml -o /path/to/ws
Example rewritten Google-style output (abbreviated):
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<remote name="origin" fetch="ssh://git@gitlab.com/libesys"/>
<default revision="refs/heads/master" remote="origin" sync-j="4"/>
<project path="." name="esysbuild/dev" revision="1c755ba07965fdb0c43ae5f575abd9326bed1b83"/>
<project path="src/esysrepo" name="esysrepo/esysrepo" revision="ccd20a0490ed1e2fb4769ca8fcd9a22ba444ec8d"/>
</manifest>