do not edit — generated by btf.
git.druid.rocksindexdruid520mpdocs/reference/commands/update.btft

docs/reference/commands/update.btft


[table class="topnav"]
[tr]
[td class="logotab"]mp[e]
[td][see name="index"]index[e][e]
[td][see name="guide/index"]guide[e][e]
[td][see name="reference/index"]reference[e][e]
[e]
[e]
 
[h1]mp update[e]
 
[h2]synopsis[e]
 
[code]
mp update [--resume] <pkg|world|all|@set> ...
mp update            # sync only, if no names given
[e]
 
[h2]description[e]
 
syncs every configured repo, then rebuilds the given package set in dependency order -- serially, one package at a time, never two at once (a reinstall learns what files it owns by snapshotting the install prefix before/after its own build; two concurrent builds would corrupt each other's snapshots).
 
ordering is computed once, up front: a dependency graph is built among just the packages in the update set (a rotating "resolving dependencies..." spinner shows on a real terminal while this runs), hard deps first, then soft (?-prefixed) deps added wherever they don't close a cycle back through an already-accepted edge -- a package is only rebuilt after everything else in the SAME batch that it needs has already been rebuilt. a provider not being updated stays present and imposes no ordering at all.
 
a package with [code]mp hold[e] set is skipped with a note, not treated as a failure -- update keeps going. a real build failure is fatal and stops the whole run immediately.
 
[h2]--resume[e]
 
update writes its progress to [code]WD/update-progress[e] as it goes (one line per finished package, flushed immediately -- not batched until the end, so a crash partway through doesn't lose it), keyed against the exact request (the sorted list of names given on the command line, before any world/@set/%tag expansion). rerunning the identical request with [code]--resume[e] skips everything already recorded as done and picks up where it left off, instead of rebuilding a dozen already-good packages from scratch. a successful full run deletes the progress file on the way out. resuming against a DIFFERENT request than the one that left the file behind is detected and ignored (starts fresh, with a note), rather than silently trusting unrelated leftover state.
 
[h2]examples[e]
 
[code]
mp sync                    # just the sync, no rebuilding
mp update world            # rebuild everything currently installed, in dependency order
mp update --resume world   # after a build failure interrupted the above
[e]
 
[h2]see also[e]
 
[see name="reference/commands/sync"]sync[e], [see name="reference/commands/reinstall"]reinstall[e], [see name="reference/commands/hold"]hold[e], [see name="reference/commands/dryrun"]dryrun[e].
powered by btf.