def held.why
import ezx@1.11.0.0/src/lock/up.bend as Upimport Base
import ezx@1.11.0.0/src/ledger/manifest.bend as M
764# why a pin is held, said for its source: a hub pin is pinned by its hash,
765# and a workspace member is the committed tree
766def held.why(src: M.Source) -> String:
767 match src:
768 case M.Hub{_nv}:
769 ": pinned by its hash"
770 case M.Git{_url, _rev, _tag, _root, _nar, _vend}:
771 ": pinned by its hash"
772 case M.Member{_path, _nv}:
773 ": a workspace member, locked from its committed files"