use crate::error::OxenError;
use crate::model::{Commit, LocalRepository};
use crate::repositories;
pub fn get(repo: &LocalRepository, revision: impl AsRef<str>) -> Result<Option<Commit>, OxenError> {
let revision = revision.as_ref();
if revision == "HEAD" {
let commit = repositories::commits::head_commit(repo)?;
return Ok(Some(commit));
}
let commit_id = repositories::branches::get_commit_id(repo, revision)?
.unwrap_or_else(|| revision.to_string());
let commit = repositories::commits::get_by_id(repo, &commit_id)?;
Ok(commit)
}