Skip to main content

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.

Usage

esysrepo manifest [options ...]

Options

Available options:

  • --revision-as-head / -r: Rewrite revisions to commit hashes (same as the default when no directory flag is given)
  • --output-file / -o FILE: 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 / -a NAME: Add a manifest directory; pass SSH and HTTPS URLs as positional arguments (ssh://… and https://…)
  • --del-dir / -d NAME: Delete a manifest directory by name
  • --folder / -f PATH: 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

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>