Skip to main content

Module checkout

Module checkout 

Source
Expand description

What this checkout last pulled or pushed for each document of its project, so pull can tell a file changed here from one changed on the server, and a keyed push can name the revision it started from.

The record is .semora-state/checkout.json, next to .semora. It belongs to the folder, not to the machine, so every worktree has its own. The folder holds a .gitignore of *, so it never gets committed.

Structs§

Record
One document as this checkout last saw it.

Enums§

Local
What is on disk at a document’s path.

Constants§

DIR

Functions§

ids_under_other_id
The document ids of a record written for this server under another project id: the .semora changed under it, perhaps because another checkout followed the project to a new id and the change came in with git. Empty when the record is this project’s or absent.
load
The records of this checkout’s project.
local
Reads the document at key as a push would: one file, or the files of a folder.
local_rel
A path from the server as a relative path on this machine, or None when it would leave the project folder, reach into .git, .semora or the record, or can’t be a file name here.
move_to
Carries the records over when the project got a new id, so pull and push still know what this folder has.
relabel
Files the record that was written under another id under this one, keeping its documents.
sha256
update
Changes the records under a lock, so pushes and pulls in one checkout don’t lose each other’s writes.

Type Aliases§

Records
The records of a project, by document path.