Name: Maxim Kirby
- Current branch name.
- Map from branch name to branch ID.
- HEAD commit ID.
- Map from commit ID to commit Obj.
- Map from blob ID to blob Obj.
- Map from blob name to blob ID.
- List of blob ID.
- initialize: create directory to store commits and blobs.
- add: adds a file to staging area.
- rm: removes a file from staging area.
- commit: creates a new commit by updating the old commit with changes made on the stage.
- log: prints out all commits starting from the HEAD of the current branch.
- globalLog: prints out all commits.
- find: prints out all commits with specific message.
- status: prints info about the current branch and staging details.
- checkout: checkout files from a commit ID (can be concatenated) or parent commit (if left empty)
- checkoutBranch: checks out all files from a branch name.
- reset: checks out all files from a commit ID (can be concatenated).
- branch: creates new branch.
- rmBranch: removes existing branch.
- merge: merges a specified branch into the current branch and will specify any merge conflicts (uses BFS to find common ancestor).
- commit ID.
- commit message.
- timestamp for commit creation.
- array of parent commit ID(s).
- Map from file names to blob ID(s).
- getId: returns commit ID of commit Obj.
- getMessage: returns commit message of commit Obj.
- getTimestamp: returns timestamp of commit Obj.
- getParents: returns array of parent(s).
- setOtherParent: sets a 2nd parent to specified commit ID.
- getFiles: returns mapping of files to blob IDs.
- toString: formatted printing of commit Obj.
- blob ID.
- blob name (file name).
- byte array of file content.
- getId: returns blob ID of blob Obj.
- getName: returns blob name of blob Obj.
- getContent: returns content as byte array.