Builtin Library
README.md
zm.pull
git pull: fetch origin/<branch> and merge it into the session branch. With no branch it pulls the session branch's own origin branch.
- Strictly behind: the session branch fast-forwards to the fetched commit.
- Diverged: a two-parent merge commit lands, with the same conflict-marker flow as
zm.merge. Resolve the markers, thenzm.add+zm.commit;zm.merge("", { abort = true })abandons it. - Already contains it: nothing changes.
{ ffOnly = true }refuses anything but a fast-forward.{ noFf = true }always makes a merge commit.
A local change on a path the pull rewrites refuses it with git's message naming the paths; every other local change stays in the working tree. A scene's unsaved live edits count as a local change to its scene.json: a fast-forward that rewrites that scene refuses, naming the scene and how to save or discard the edits, and a merge commit refuses over any scene holding them. zm.fetch first shows what a pull would do.
Updating an installed asset or a library is not a pull. Use the zeromind toolbox for that: zeromind.updates lists what has updates, zeromind.reviewUpdate shows what one changes, and zeromind.update applies it without committing.