commitFromRevision method
revision
should probably be a sha1 to a commit.
But GIT lets you do other things.
See http://git-scm.com/docs/gitrevisions.html
Implementation
Future<Commit> commitFromRevision(String revision) async {
final pr = await runCommand(['cat-file', '-p', revision]);
return Commit.parse(pr.stdout as String);
}