- Git clone, pull (no merge), and checkout (move HEAD)
- Read history read files at any point in history.
- Readable sorted dag-stream for history and file tree.
- Same as #1 plus...
- Create commits by saving the entire state of the working directory.
- Create annotated tags.
- Manage Branches and tags.
- Push commits back upstream (no merge)
- Same as #2 plus...
- A staging area so that developers can chose what gets commited
- High-level APIs for working with the staging area with actions like "add" "remove", etc..
- Same as #3 plus...
- Merge logic, conflict resolution, rebasing, etc..
- Basically enable a more distributed workflow.
Good luck with the dev!
I hope you get the clone through http working, since that's what's most commonly used across the web.