Test Workflow / Lint and test library (push) Successful in 1m51sDetails
Publish Workflow / Publish library (push) Successful in 2m18sDetails
Closes#6.
Implements branch support by _only extending_ the existing functionality. Note that the existing functionality DOES NOT implement a `parent` pointer for commits, and as a result branches are also implemented differently to how git implements them.
git branches are simply a named pointer to a commit object (which then has a pointer to its parent commit), here branches store the entire sequence of pointers to commit objects.
### Why different to git?
I made a mistake in the initial implementation by using a `TreeSet` instead of manually implementing a tree for commits. This allowed the ability to insert commits in-between other commits, which isn't normally possible in `git` _without rebasing which changes commits' hashes_.
The specification for this feature stated:
> All functionality that is implemented already should be preserved.
And so since I cannot remove this functionality any more, I have to build on top of it.
Reviewed-on: #7
Test Workflow / Lint and test library (push) Successful in 17m4sDetails
> Search for specific commit by hash or metadata and print its content.
To satisfy this final requirement, we need to have `toString()` implemented for version manager `Object`s which will allow them to be easily (and nicely) printed if needed (includes tests).
Reviewed-on: #4