Sharing

Commits are trees of named DAG snapshots. Branches and tags point to commits; HEAD selects the checkout. This page publishes the completed course project to the fixture-owned Moto remote, then uses separate satellite projects for reuse and shallow-history operations.

Publish and inspect history

dml log | jq -e 'length > 0'
dml show | jq -e '.dags["course-execution"] and .dags["course-artifacts"]'
dml tag create course-v1 >/dev/null
dml tag list | jq -e '.[] | select(.name == "course-v1")'
dml config show | jq -e --arg root "$DML_REMOTE_ROOT" '.remote.root == $root'
dml push >/dev/null
dml branch list --remote | jq -e '.[] | select(.name == "main")'
true
true
{
  "commit": "commit:b3c64cc94ba3bcc63eb23379893d570376eeaf53d15b13e6a468043b5d1a942f",
  "name": "course-v1"
}
true
{
  "commit": "commit:b3c64cc94ba3bcc63eb23379893d570376eeaf53d15b13e6a468043b5d1a942f",
  "name": "main"
}

dml log, show, and diff inspect history; branches can have one upstream, while tags do not. push publishes the current attached branch to its upstream; the local tag remains an exact name for the course commit. Endpoint listing is read-only: it does not fetch commits or update local tracking refs.

Reuse from satellite projects

The satellites are deliberately outside research-demo, so fetch, dependency, and shallow-history exercises cannot disturb the course project.

reuse_home="$DOCS_WORKSPACE_ROOT/course-reuse"
dep_home="$DOCS_WORKSPACE_ROOT/course-dependency"
shallow_home="$DOCS_WORKSPACE_ROOT/course-shallow"
mkdir "$reuse_home" "$dep_home" "$shallow_home"

(
  cd "$reuse_home"
  dml init
  dml config set remote.root "$DML_REMOTE_ROOT" >/dev/null
  dml fetch main >/dev/null
  dml dag checkout main course-execution --remote --name reused-execution
  dml show | jq -e '.dags["reused-execution"]'
)

(
  cd "$dep_home"
  dml init
  dml dep add tutorial "$DML_REMOTE_ROOT"
  dml fetch --dep tutorial main >/dev/null
  dml dag checkout main course-artifacts --dep tutorial --name dependency-artifacts
  dml show | jq -e '.dags["dependency-artifacts"]'
)

(
  cd "$shallow_home"
  dml --remote-root "$DML_REMOTE_ROOT" clone main --depth 1 --project-home .
  dml show | jq -e '.dags["course-execution"]'
  dml fetch --unshallow main >/dev/null
)
{"ahead":null,"behind":null,"branch":"main","branches":[],"commit":null,"mode":"attached","num_indexes":0,"upstream":null}
commit:c82b4cd26105b1417919ebfc2909e071e7205e4907416a8303644cb027d33be7
"dag:4b0f21c9c9fcacdc3fe3c0dce5233f2b8e5246be1d3225e68f98115d72e69c1f"
{"ahead":null,"behind":null,"branch":"main","branches":[],"commit":null,"mode":"attached","num_indexes":0,"upstream":null}
tutorial
commit:8aa111cdabef8ac0cb9a309000fce7324b1169da7794cdf6a89d522d9106f333
"dag:bd8e5e5b71213031bbd1f7017bbc10f8fe90706d29ccd2a1a5f4dc8cd76d65ce"
{"ahead":0,"behind":0,"branch":"main","branches":["main"],"commit":"commit:b3c64cc94ba3bcc63eb23379893d570376eeaf53d15b13e6a468043b5d1a942f","mode":"attached","num_indexes":0,"upstream":"main"}
"dag:4b0f21c9c9fcacdc3fe3c0dce5233f2b8e5246be1d3225e68f98115d72e69c1f"

dml.load("name") reads a committed DAG and dag.require("name") imports one into new work. A shallow clone contains the selected commit’s complete tree, DAGs, nodes, data, and imports; only older parents may be unavailable. Use a larger fetch --depth N to deepen history or fetch --unshallow to retrieve it all. Dependencies are import-only endpoints, not the project’s cache or execution remote. A normal push can advance an observed shallow branch; creating a remote branch or forcing publication requires complete ancestry.