diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b72348504..8216cbd8ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,9 @@ but this also allows us now to define colors in the common hex format: Checkout [THEMES.md](./THEMES.md) for more info. +### Added +* support `TAR_COMMIT_ID` enabling builds from `git archive` generated source tarballs or other outside a git repo [[@alerque](https://github.com/alerque)] ([#2187](https://github.com/extrawurst/gitui/pull/2187)) + ### Fixes * update yanked dependency to `libc` to fix building with `--locked`. * document breaking change in theme file format. diff --git a/build.rs b/build.rs index e217973c3f..2434db6af8 100644 --- a/build.rs +++ b/build.rs @@ -3,9 +3,14 @@ use chrono::TimeZone; fn get_git_hash() -> String { use std::process::Command; + // Allow builds from `git archive` generated tarballs if output of `git get-tar-commit-id` is + // set in an env var. + if let Ok(commit) = std::env::var("TAR_COMMIT_ID") { + return commit[..7].to_string(); + }; let commit = Command::new("git") .arg("rev-parse") - .arg("--short") + .arg("--short=7") .arg("--verify") .arg("HEAD") .output();