[package] name = "git-repository" repository = "https://github.com/Byron/gitoxide" description = "This crate is now named 'gix' and not available under this name anymore" license = "MIT/Apache-2.0" version = "0.35.0" authors = ["Sebastian Thiel "] edition = "2021" include = ["src/**/*", "CHANGELOG.md"] rust-version = "1.64" [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"] [[example]] name = "clone" path = "examples/clone.rs" required-features = ["blocking-network-client"] [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.24.0", path = "../git-ref" } git-discover = { version = "^0.13.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.2", path = "../git-validate" } git-sec = { version = "^0.6.2", path = "../git-sec" } git-date = { version = "^0.4.2", path = "../git-date" } git-refspec = { version = "^0.7.2", path = "../git-refspec" } git-config = { version = "^0.16.0", path = "../git-config" } git-odb = { version = "^0.40.2", path = "../git-odb" } git-hash = { version = "^0.10.2", path = "../git-hash" } git-object = { version = "^0.26.1", path = "../git-object" } git-actor = { version = "^0.17.1", path = "../git-actor" } git-pack = { version = "^0.30.2", path = "../git-pack", features = ["object-cache-dynamic"] } git-revision = { version = "^0.10.2", path = "../git-revision" } git-path = { version = "^0.7.1", path = "../git-path" } git-url = { version = "^0.13.2", path = "../git-url" } git-traverse = { version = "^0.22.1", path = "../git-traverse" } git-protocol = { version = "^0.26.3", path = "../git-protocol", optional = true } git-transport = { version = "^0.25.4", path = "../git-transport", optional = true } git-diff = { version = "^0.26.1", path = "../git-diff" } git-mailmap = { version = "^0.9.2", path = "../git-mailmap" } git-features = { version = "^0.26.2", path = "../git-features", features = ["progress", "once_cell"] } git-attributes = { version = "^0.8.2", path = "../git-attributes" } git-glob = { version = "^0.5.3", path = "../git-glob" } git-credentials = { version = "^0.9.1", path = "../git-credentials" } git-prompt = { version = "^0.3.2", path = "../git-prompt" } git-index = { version = "^0.12.3", path = "../git-index" } git-worktree = { version = "^0.12.2", path = "../git-worktree" } git-hashtable = { version = "^0.1.1", path = "../git-hashtable" } prodash = { version = "23.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 openssl. 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 = "1.0.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"]