Up.Ask: type of ezx@1.11.0.0 Import: import ezx@1.11.0.0/src/lock/up.bend as Up Lines 38-55 of ezx@1.11.0.0/src/lock/up.bend: https://jend.leeeet.dev/read.txt?path=ezx@1.11.0.0/src/lock/up.bend&start_line=38&end_line=55 import Base # a question the upgrade asks, answered by one IO action. `ez add` # (add/plan.bend) asks four of them too: `Tags`, `Head` and `Refs` to resolve # a ref, and `Clone` for the checkout it walks. The upgrade asks each with # the source its ledger records, and looks the answer up by that; git is asked # the same question with that source anchored at the project (`anchor`), # which the planner computes (lock/plan.bend, `P.Query`). `ez add` and # `ez fetch` ask with the source anchored already. type Ask is Data: Refs{url: String, ref: String} # `git ls-remote url refs/tags/ ... refs/heads/` Head{url: String} # `git ls-remote --symref url HEAD` Tags{url: String} # `git ls-remote --tags url`, for a tool with no tag Above{url: String, pin: String, tip: String} # whether `tip` descends from `pin` Tree{url: String, rev: String, entry: String} # a checkout at rev: narHash, root, the package its entry reaches Weigh{url: String, rev: String} # a checkout at rev, narHash only, for a tool HubHas{hub: String, hash: String} # the hub's manifest for a hash a dependency moved to Ignore{} # `.gitignore`, "" when missing Sources{} # every `.bend` file outside `.ez` and `.git` Clone{url: String, rev: String} # a checkout at rev: narHash and every file's text, for `ez add` Uses (1): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String