remove commit hash logic from revision

revision might be a list of commits, it makes no sense to have those methods on revision.
on a reference, it does.