"Philip Oakley" <philipoakley@xxxxxxx> writes: > Perhaps something like: > +$GIT_DIR/shallow, and handle its contents similar to replace > +refs (with the difference that shallow does not actually > +create those replace refs) with the difference that shallow commits will > +always have their parents not present. I am not sure if there is enough similarity to replace mechanism to mention that. It has lines of text, each of which records a commit object for which Git is told to pretend that it has no parent. To those who are familiar with "graft" format, it is possible to explain the format as "it is similar to graft", as a line with a single commit object name tells Git to pretend that it has no parent in the "graft" format, but because we are getting rid of graft, it probably makes sense to just explain it without reference to replace (which may serve a similar purpose, but is certainly very far from "similar" as a mechanism when you explain how the contents of shallow is handled). $GIT_DIR/shallow lists commit object names and tells Git to pretend as if they are root commits (e.g. "git log" traversal stops after showing them; "git fsck" does not complain saying the commits listed on their "parent" lines do not exist).