divekit snapshot
Create history-stripped research snapshots of distributed repositories
Synopsis
Create research snapshots from a Divekit distribution.
Snapshots clone the selected work repositories, remove Git history, create a single neutral initial commit, and push the result into a target GitLab group.
Privacy note: this removes commit history and commit metadata only. UUIDs, file contents, file paths, and other in-repository data are not anonymized or scrubbed.
Usage
divekit snapshot [flags]
Examples
# Snapshot all repositories into an explicit research group
divekit snapshot -d ST2M4 --target-group research/course-2026
# Preview without creating subgroups, projects, clones, or pushes
divekit snapshot -d ST2M4 --target-group research/course-2026 --dry-run
# Snapshot selected UUIDs and overwrite existing targets
divekit snapshot -d ST2M4 --uuid abc123 --uuid def456 --on-existing overwrite
Flags
--author-email string Neutral snapshot commit author email (default "divekit@invalid.local")
--author-name string Neutral snapshot commit author name (default "Divekit")
--branch string Target branch to push (default "main")
--commit-message string Snapshot commit message (default "Initial snapshot")
-d, --distribution string Distribution name
-n, --dry-run Show what would happen without cloning, creating GitLab resources, or pushing
--label string Snapshot label (default: local timestamp YYYYMMDD-HHMMSS)
--name-pattern string Target project name template (default: {{distribution}}-{{uuid}})
--on-existing string Existing target behavior: skip, overwrite, or fail (default "skip")
-o, --output-dir string Local staging output directory to keep after push
--rate-limit float Maximum snapshot tasks per second (unset = preset, 0 = unlimited)
-r, --remote string Remote repository URL (e.g. GitLab instance)
--source-ref string Source branch or tag to clone (default: source default branch)
--target-group string Target GitLab group path or ID
-t, --token string GitLab token or token file path (file:///...)
--user strings Only snapshot repositories for these usernames (repeatable)
--uuid strings Only snapshot repositories with these UUIDs (repeatable)
--visibility string Target project visibility (default "private")
-w, --workers int Number of concurrent snapshot workers (0 = use preset)
Inherited Flags
-l, --loglevel string log level (debug, info, warn, error, fatal) (default "info")
--no-index skip project index update
--non-interactive run in non-interactive mode (fails if interactive input is required)
-y, --yes assume yes/default for all prompts (non-interactive with automatic defaults)