# crate-git-revision
Embed the git revision of a crate in its build.
Supports embedding the version from a local or remote git repository the build
is occurring in, as well as when `cargo install` or depending on a crate
published to crates.io.
It extracts the git revision in two ways:
- From the `.cargo_vcs_info.json` file embedded in published crates.
- From the git repository the build is occurring from in unpublished crates.
Injects an environment variable `GIT_REVISION` into the build that contains
the full git revision, with a `-dirty` suffix if the working directory is
dirty.
Requires the use of a build.rs build script. See [Build Scripts]() for more
details on how Rust build scripts work.
[Build Scripts]: https://doc.rust-lang.org/cargo/reference/build-scripts.html
#### Examples
Add the following to the crate's `Cargo.toml` file:
```toml
[build_dependencies]
crate-git-revision = "0.0.2"
```
Add the following to the crate's `build.rs` file:
```rust
crate_git_revision::init();
```
Add the following to the crate's `lib.rs` or `main.rs` file:
```rust
pub const GIT_REVISION: &str = env!("GIT_REVISION");
```
License: Apache-2.0