Jump to the work
CS 61B
ProjectDue Friday, Jul 31 · 11:59 PMGuided help

Project 2: Gitlet

60 points · checks, design review, and process · resubmit freely until the due date

Build Gitlet: a version-control system in the spirit of git, small enough to hold in your head. You will implement init, add, commit, log, and checkout.

The hard part is persistence. Every command runs as a fresh program: anything your commands know, they must recover from disk. The autograder restarts your program between every step — a history that lives in memory is a history that doesn't exist.

Work here, in your repository. Run the checks as often as you like; every run is recorded to your workspace history, and your instructor reads that history as part of your grade — steady work shows.

Starter materials

  • workspaceStarter repository — 6 files, checks includedopens with the assignment
  • readerProject spec — Persistence and the restart ruleannotatable
  • notesLecture 12 — Rebuilding state from the logannotatable

How this is graded

  • Checks pass on the grading run36 pts
  • Design review — structure, naming, persistence model16 pts
  • Process — how the work took shape in your workspace8 pts
This assignment opens into
Your repository
gitlet/editor · 6 files
$ make checkterminal
24 checksred, then green

Your work saves as you type. Leave and come back; the workspace holds your place.

The tutor points before it tells. It will not write project code.