jab get of a parent whose gitlink pins a sub at a NON-tip historical commit fails to mount the sub: submount.tryFetch asks the wire for the exact pin sha, the git upload-pack server refuses (not our ref <pin>), the fetch returns null, all candidates fail, and the whole get throws SUBFETCH … child unreachable (rc=1, sub absent). Native fetches the sub's BRANCH and resolves the pin from history. This blocks the entire submodules.sh fixture family (the standard pin = SUB_C2 non-tip). Part of JGET-001; method Issues.
beagle/test/get/{05,11,12,13,15,16,17,20,53} (parent+sub, pin=SUB_C2
non-tip). When the pin == the advertised tip, jab mounts cleanly (verified case c0511tip, rc=0) — so it is specifically the pin≠tip path.
only master=C3); jab get <parent> → git upload-pack: not our ref <C2> → be get: SUBFETCH … child unreachable. Evidence ~/todo/JSGET-cases/c0511/wk/jT.err.
be/shared/submount.js:128-138 tryFetch → wire.fetch(uri, pin)requests the exact pin; no branch-fetch + ancestry-resolve fallback.
then resolve the pin from the fetched history (as native does), and check out the pin. Pin == tip keeps working.
dag/graf history resolution. ssh-gated cases self-SKIP without
localhost ssh. Repro-first. Likely sequence AFTER JGET-006 (empty-.be mask).
tryFetch/submount: if an exact-pin fetch is refused, fall back to fetchingthe branch (or the advertised refs) into the sub shard, then verify the pin is reachable and check it out. Keep exact-pin as the fast path when the server allows it.
submount.js:154-195 localSourceUri/resolveLocalStore resolve the pin from the ON-DISK store (getObject(pin), any history depth) and mount with NO wire — the pin≠tip failure is gone for file:/scheme-less parents.tryFetch (submount.js:142-152) → wire.fetch(uri, pin); pickWant short-circuits on a full sha (wire.js:120) and a git upload-pack refuses a non-advertised want — no branch-fetch + ancestry-resolve fallback yet. Add it in mount's wire branch (submount.js:279-299): on a refused exact-pin fetch, fetch the branch/advertised refs, verify the pin reachable, check it out.be/test/get: wire parent (ssh:/be:/git) pinning a sub at a NON-tip commit → sub mounts (native oracle retired by TEST-003).