fn git_identifier()

in build2cmake/src/torch/ops_identifier.rs [17:24]


fn git_identifier(target_dir: impl AsRef<Path>) -> Result<String> {
    let repo = Repository::discover(target_dir.as_ref()).context("Cannot open git repository")?;
    let head = repo.head()?;
    let commit = head.peel_to_commit()?;
    let rev = commit.tree_id().to_string().chars().take(7).collect();
    let dirty = !repo.statuses(None)?.is_empty();
    Ok(if dirty { format!("{rev}_dirty") } else { rev })
}