Quest repository format
The linear-history repository format for a quest makes it easier to make edits to the content and structure of the quest. This format does not include all of the information required to define a quest: for example, it omits task instructions. It does include the chapter structure, commits, and commit messages.
The repository format consists of a git repository with a linear history of commits. Each commit has a corresponding branch whose name has one of the following formats:
quest/main/commit-label,quest/chapter/chapter-label/scaffold/commit-label, orquest/chapter/chapter-label/solution/commit-label,
where each of the commit-label and chapter-label components are replaced by
concrete commit and chapter labels.
The commits with branches of the form quest/main/commit-label correspond to
the commits in the directory structure in the main directory. The commits the
other format correspond to the scaffold or reference solution commits for a
chapter with the given label.
All commits for a chapter must be adjacent, all commits for quests/main
must come before any chapter commits, and all commits must have exactly one
branch with the given format.