[package]name = "git-repository"repository = "https://github.com/Byron/gitoxide"description = "Abstractions for git repositories"license = "MIT/Apache-2.0"version = "0.30.1"authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]edition = "2021"include = ["src/**/*", "CHANGELOG.md"]rust-version = "1.60" [lib]doctest = falsetest = true [[test]]name = "git"path = "tests/git.rs"required-features = [] [[test]]name = "git-with-regex"path = "tests/git-with-regex.rs"required-features = ["regex"] [features] default = ["max-performance-safe"] #! ### Mutually Exclusive Network Client#! Either `async-*` or `blocking-*` versions of these toggles may be enabled at a time. ## Make `git-protocol` available along with an async client.async-network-client = ["git-protocol/async-client"]## Use this if your crate uses `async-std` as runtime, and enable basic runtime integration when connecting to remote servers.async-network-client-async-std = ["async-std", "async-network-client", "git-transport/async-std"]## Make `git-protocol` available along with a blocking client.blocking-network-client = ["git-protocol/blocking-client"]## Stacks with `blocking-network-client` to provide support for HTTP/S using **curl**, and implies blocking networking as a whole.blocking-http-transport-curl = ["blocking-network-client", "git-transport/http-client-curl"]## Stacks with `blocking-network-client` to provide support for HTTP/S using **reqwest**, and implies blocking networking as a whole.blocking-http-transport-reqwest = ["blocking-network-client", "git-transport/http-client-reqwest"]## Stacks with `blocking-http-transport-reqwest` and enables HTTPS via the `rustls` crate. Note that https isn't available without a selection.blocking-http-transport-reqwest-rust-tls = ["blocking-http-transport-reqwest", "reqwest-for-configuration-only/rustls-tls", "reqwest-for-configuration-only/trust-dns"]## Stacks with `blocking-http-transport-reqwest` and enables HTTPS via the `native-tls` crate. Note that https isn't available without a selection.blocking-http-transport-reqwest-native-tls = ["blocking-http-transport-reqwest", "reqwest-for-configuration-only/default-tls" ] #! ### Other ## Data structures implement `serde::Serialize` and `serde::Deserialize`.serde1 = [ "serde", "git-pack/serde1", "git-object/serde1", "git-protocol?/serde1", "git-transport?/serde1", "git-ref/serde1", "git-odb/serde1", "git-index/serde1", "git-mailmap/serde1", "git-attributes/serde1", "git-revision/serde1", "git-credentials/serde1" ] ## Activate other features that maximize performance, like usage of threads, `zlib-ng` and access to caching in object databases.## Note that some platforms might suffer from compile failures, which is when `max-performance-safe` should be used.max-performance = [ "git-features/zlib-ng-compat", "fast-sha1", "max-performance-safe" ] ## If enabled, use assembly versions of sha1 on supported platforms.## This might cause compile failures as well which is why it can be turned off separately.fast-sha1 = [ "git-features/fast-sha1" ] ## Activate features that maximize performance, like usage of threads, `zlib-ng` and access to caching in object databases, skipping the ones known to cause compile failures## on some platforms.max-performance-safe = [ "git-features/parallel", "git-pack/pack-cache-lru-static", "git-pack/pack-cache-lru-dynamic", "git-features/fs-walkdir-parallel"]## Print debugging information about usage of object database caches, useful for tuning cache sizes.cache-efficiency-debug = ["git-features/cache-efficiency-debug"] [dependencies]git-ref = { version = "^0.21.0", path = "../git-ref" }git-discover = { version = "^0.10.0", path = "../git-discover" }git-tempfile = { version = "^3.0.0", path = "../git-tempfile" }git-lock = { version = "^3.0.0", path = "../git-lock" }git-validate = { version = "^0.7.1", path = "../git-validate" }git-sec = { version = "^0.6.0", path = "../git-sec" }git-date = { version = "^0.3.1", path = "../git-date" }git-refspec = { version = "^0.5.0", path = "../git-refspec" } git-config = { version = "^0.13.0", path = "../git-config" }git-odb = { version = "^0.38.0", path = "../git-odb" }git-hash = { version = "^0.10.1", path = "../git-hash" }git-object = { version = "^0.24.0", path = "../git-object" }git-actor = { version = "^0.15.0", path = "../git-actor" }git-pack = { version = "^0.28.0", path = "../git-pack", features = ["object-cache-dynamic"] }git-revision = { version = "^0.8.0", path = "../git-revision" } git-path = { version = "^0.7.0", path = "../git-path" }git-url = { version = "^0.12.1", path = "../git-url" }git-traverse = { version = "^0.20.0", path = "../git-traverse" }git-protocol = { version = "^0.25.1", path = "../git-protocol", optional = true }git-transport = { version = "^0.24.1", path = "../git-transport", optional = true }git-diff = { version = "^0.24.0", path = "../git-diff" }git-mailmap = { version = "^0.7.0", path = "../git-mailmap" }git-features = { version = "^0.25.0", path = "../git-features", features = ["progress", "once_cell"] } git-attributes = { version = "^0.7.0", path = "../git-attributes" }git-glob = { version = "^0.5.1", path = "../git-glob" }git-credentials = { version = "^0.8.0", path = "../git-credentials" }git-prompt = { version = "^0.3.0", path = "../git-prompt" }git-index = { version = "^0.10.0", path = "../git-index" }git-worktree = { version = "^0.10.0", path = "../git-worktree" }git-hashtable = { version = "^0.1.0", path = "../git-hashtable" } prodash = { version = "22.0.0", default-features = false, features = ["progress-tree"] }once_cell = "1.14.0"signal-hook = { version = "0.3.9", default-features = false }thiserror = "1.0.26"log = "0.4.14"serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}smallvec = "1.9.0"async-std = { version = "1.12.0", optional = true } ## For use in rev-parse, which provides searching commits by running a regex on their message.#### If disabled, the text will be search verbatim in any portion of the commit message, similar to## how a simple unanchored regex of only 'normal' characters would work.regex = { version = "1.6.0", optional = true, default-features = false, features = ["std"] } # For internal use to allow pure-Rust builds without opensssl.reqwest-for-configuration-only = { package = "reqwest", version = "0.11.13", default-features = false, optional = true } document-features = { version = "0.2.0", optional = true } [target.'cfg(target_vendor = "apple")'.dependencies]unicode-normalization = { version = "0.1.19", default-features = false } [dev-dependencies]git-testtools = { path = "../tests/tools" }is_ci = "1.1.1"anyhow = "1"walkdir = "2.3.2"serial_test = "0.9.0"async-std = { version = "1.12.0", features = ["attributes"] } [package.metadata.docs.rs]features = ["document-features", "max-performance", "blocking-network-client", "serde1"]rustdoc-args = ["--cfg", "docsrs"]
[package]
name = "git-repository"
repository = "https://github.com/Byron/gitoxide"
description = "Abstractions for git repositories"
license = "MIT/Apache-2.0"
version = "0.30.1"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
edition = "2021"
include = ["src/**/*", "CHANGELOG.md"]
rust-version = "1.60"
[lib]
doctest = false
test = true
[[test]]
name = "git"
path = "tests/git.rs"
required-features = []
[[test]]
name = "git-with-regex"
path = "tests/git-with-regex.rs"
required-features = ["regex"]
[features]
default = ["max-performance-safe"]
#! ### Mutually Exclusive Network Client
#! Either `async-*` or `blocking-*` versions of these toggles may be enabled at a time.
## Make `git-protocol` available along with an async client.
async-network-client = ["git-protocol/async-client"]
## Use this if your crate uses `async-std` as runtime, and enable basic runtime integration when connecting to remote servers.
async-network-client-async-std = ["async-std", "async-network-client", "git-transport/async-std"]
## Make `git-protocol` available along with a blocking client.
blocking-network-client = ["git-protocol/blocking-client"]
## Stacks with `blocking-network-client` to provide support for HTTP/S using **curl**, and implies blocking networking as a whole.
blocking-http-transport-curl = ["blocking-network-client", "git-transport/http-client-curl"]
## Stacks with `blocking-network-client` to provide support for HTTP/S using **reqwest**, and implies blocking networking as a whole.
blocking-http-transport-reqwest = ["blocking-network-client", "git-transport/http-client-reqwest"]
## Stacks with `blocking-http-transport-reqwest` and enables HTTPS via the `rustls` crate. Note that https isn't available without a selection.
blocking-http-transport-reqwest-rust-tls = ["blocking-http-transport-reqwest", "reqwest-for-configuration-only/rustls-tls", "reqwest-for-configuration-only/trust-dns"]
## Stacks with `blocking-http-transport-reqwest` and enables HTTPS via the `native-tls` crate. Note that https isn't available without a selection.
blocking-http-transport-reqwest-native-tls = ["blocking-http-transport-reqwest", "reqwest-for-configuration-only/default-tls" ]
#! ### Other
## Data structures implement `serde::Serialize` and `serde::Deserialize`.
serde1 = [ "serde",
"git-pack/serde1",
"git-object/serde1",
"git-protocol?/serde1",
"git-transport?/serde1",
"git-ref/serde1",
"git-odb/serde1",
"git-index/serde1",
"git-mailmap/serde1",
"git-attributes/serde1",
"git-revision/serde1",
"git-credentials/serde1" ]
## Activate other features that maximize performance, like usage of threads, `zlib-ng` and access to caching in object databases.
## Note that some platforms might suffer from compile failures, which is when `max-performance-safe` should be used.
max-performance = [ "git-features/zlib-ng-compat", "fast-sha1", "max-performance-safe" ]
## If enabled, use assembly versions of sha1 on supported platforms.
## This might cause compile failures as well which is why it can be turned off separately.
fast-sha1 = [ "git-features/fast-sha1" ]
## Activate features that maximize performance, like usage of threads, `zlib-ng` and access to caching in object databases, skipping the ones known to cause compile failures
## on some platforms.
max-performance-safe = [
"git-features/parallel",
"git-pack/pack-cache-lru-static",
"git-pack/pack-cache-lru-dynamic",
"git-features/fs-walkdir-parallel"
]
## Print debugging information about usage of object database caches, useful for tuning cache sizes.
cache-efficiency-debug = ["git-features/cache-efficiency-debug"]
[dependencies]
git-ref = { version = "^0.21.0", path = "../git-ref" }
git-discover = { version = "^0.10.0", path = "../git-discover" }
git-tempfile = { version = "^3.0.0", path = "../git-tempfile" }
git-lock = { version = "^3.0.0", path = "../git-lock" }
git-validate = { version = "^0.7.1", path = "../git-validate" }
git-sec = { version = "^0.6.0", path = "../git-sec" }
git-date = { version = "^0.3.1", path = "../git-date" }
git-refspec = { version = "^0.5.0", path = "../git-refspec" }
git-config = { version = "^0.13.0", path = "../git-config" }
git-odb = { version = "^0.38.0", path = "../git-odb" }
git-hash = { version = "^0.10.1", path = "../git-hash" }
git-object = { version = "^0.24.0", path = "../git-object" }
git-actor = { version = "^0.15.0", path = "../git-actor" }
git-pack = { version = "^0.28.0", path = "../git-pack", features = ["object-cache-dynamic"] }
git-revision = { version = "^0.8.0", path = "../git-revision" }
git-path = { version = "^0.7.0", path = "../git-path" }
git-url = { version = "^0.12.1", path = "../git-url" }
git-traverse = { version = "^0.20.0", path = "../git-traverse" }
git-protocol = { version = "^0.25.1", path = "../git-protocol", optional = true }
git-transport = { version = "^0.24.1", path = "../git-transport", optional = true }
git-diff = { version = "^0.24.0", path = "../git-diff" }
git-mailmap = { version = "^0.7.0", path = "../git-mailmap" }
git-features = { version = "^0.25.0", path = "../git-features", features = ["progress", "once_cell"] }
git-attributes = { version = "^0.7.0", path = "../git-attributes" }
git-glob = { version = "^0.5.1", path = "../git-glob" }
git-credentials = { version = "^0.8.0", path = "../git-credentials" }
git-prompt = { version = "^0.3.0", path = "../git-prompt" }
git-index = { version = "^0.10.0", path = "../git-index" }
git-worktree = { version = "^0.10.0", path = "../git-worktree" }
git-hashtable = { version = "^0.1.0", path = "../git-hashtable" }
prodash = { version = "22.0.0", default-features = false, features = ["progress-tree"] }
once_cell = "1.14.0"
signal-hook = { version = "0.3.9", default-features = false }
thiserror = "1.0.26"
log = "0.4.14"
serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}
smallvec = "1.9.0"
async-std = { version = "1.12.0", optional = true }
## For use in rev-parse, which provides searching commits by running a regex on their message.
##
## If disabled, the text will be search verbatim in any portion of the commit message, similar to
## how a simple unanchored regex of only 'normal' characters would work.
regex = { version = "1.6.0", optional = true, default-features = false, features = ["std"] }
# For internal use to allow pure-Rust builds without opensssl.
reqwest-for-configuration-only = { package = "reqwest", version = "0.11.13", default-features = false, optional = true }
document-features = { version = "0.2.0", optional = true }
[target.'cfg(target_vendor = "apple")'.dependencies]
unicode-normalization = { version = "0.1.19", default-features = false }
[dev-dependencies]
git-testtools = { path = "../tests/tools" }
is_ci = "1.1.1"
anyhow = "1"
walkdir = "2.3.2"
serial_test = "0.9.0"
async-std = { version = "1.12.0", features = ["attributes"] }
[package.metadata.docs.rs]
features = ["document-features", "max-performance", "blocking-network-client", "serde1"]
rustdoc-args = ["--cfg", "docsrs"]