.forge/issues/462c4759-677d-49bb-be01-cf267dbbd106/issue.md 1.9 KiB 24 lines Raw

id: 462c4759-677d-49bb-be01-cf267dbbd106 title: 'Clone docs + repo hygiene after #54 (Dockerfile, wiki/deploy, .gitignore, unset-mode UX)' state: closed labels:


Small leftovers from the #54 review — docs and repo hygiene.

  1. Dockerfile:37 still documents the old contract: "set HU13_PUBLIC_ORIGIN to advertise <origin>/repo.bundle". It advertises <origin>/repo.git now.
  2. .forge/wiki/deploy does not mention repo.git at all, and its env table omits HU13_PUBLIC_ORIGIN entirely (flag exists, entrypoint passes it, docs never say so). It also still frames HU13_CLONE_URL as "the clone URL advertised on the index", which is now the fallback/mirror label.
  3. .gitignore has no /dist. Since dist/repo.git is a 200+-file directory, running hu13 build . -o dist in the repo now scatters hundreds of derived files into a tracked-looking path. Add /dist (and a .forge/wiki/deploy line about building outside the repo).
  4. Unset-origin clone block now advertises two clone methods back to back: git clone repo.git -b <branch> and git clone repo.bundle -b <branch>. repo.git is a path, not a URL, and the adjacent note "ask the host for its address" reads oddly next to something that looks cloneable. Pick one primary (bundle stays authoritative when unset, per the existing contract) and mention repo.git as the served-directory form.
  5. serve::content_type_for matches lower.ends_with("/head"), i.e. any file named head anywhere. Match the bare-repo file exactly (/HEAD, info/refs, info/packs, packed-refs) to avoid teaching the mime table about arbitrary paths.

Acceptance:

view raw