From 3ef3bc20a1b90799e5ac26858f898bc7a7c96901 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Sat, 13 Jan 2024 16:10:23 -0800 Subject: [PATCH] Typo fixes --- gitoxide-core/src/corpus/db.rs | 2 +- .../src/repository/commitgraph/list.rs | 2 +- gitoxide-core/src/repository/fsck.rs | 2 +- gitoxide-core/src/repository/revision/list.rs | 2 +- gix-command/src/lib.rs | 2 +- gix-commitgraph/src/file/access.rs | 6 +++--- .../fuzz/fuzz_targets/fuzz_value.rs | 2 +- gix-diff/src/blob/platform.rs | 4 ++-- .../generated-archives/make_diff_repo.tar.xz | Bin 18456 -> 19236 bytes gix-features/src/interrupt.rs | 4 ++-- gix-filter/src/driver/shutdown.rs | 2 +- gix-filter/src/pipeline/convert.rs | 2 +- gix-filter/src/pipeline/mod.rs | 2 +- gix-filter/tests/eol/convert_to_git.rs | 2 +- gix-index/src/extension/mod.rs | 2 +- gix-index/src/fs.rs | 2 +- gix-index/src/write.rs | 2 +- gix-odb/src/store_impls/dynamic/verify.rs | 2 +- gix-pack/src/cache/object.rs | 2 +- gix-pathspec/src/search/mod.rs | 2 +- gix-sec/src/identity.rs | 2 +- gix-status/src/lib.rs | 2 +- gix-status/tests/status/index_as_worktree.rs | 4 ++-- gix-trace/src/enabled.rs | 2 +- gix-trace/src/lib.rs | 2 +- gix-traverse/src/tree/mod.rs | 2 +- gix-url/tests/baseline.rs | 2 +- gix-url/tests/parse/file.rs | 2 +- gix/Cargo.toml | 8 ++++---- gix/src/assets/init/info/exclude | 2 +- gix/src/config/mod.rs | 4 ++-- gix/src/interrupt.rs | 2 +- gix/src/object/tree/mod.rs | 4 ++-- gix/src/repository/config/branch.rs | 2 +- gix/src/types.rs | 2 +- gix/tests/remote/fetch.rs | 2 +- gix/tests/repository/config/remote.rs | 2 +- src/lib.rs | 2 +- src/plumbing/options/mod.rs | 2 +- 39 files changed, 48 insertions(+), 48 deletions(-) diff --git a/gitoxide-core/src/corpus/db.rs b/gitoxide-core/src/corpus/db.rs index b2e88583ea8..f1ee3f6ec3e 100644 --- a/gitoxide-core/src/corpus/db.rs +++ b/gitoxide-core/src/corpus/db.rs @@ -131,7 +131,7 @@ pub fn create(path: impl AsRef) -> anyhow::Result, mut out: impl s let commits: gix::revision::Walk<'_> = id .object()? .peel_to_kind(gix::object::Kind::Commit) - .context("Need commitish as starting point")? + .context("Need committish as starting point")? .id() .ancestors() .all()?; diff --git a/gitoxide-core/src/repository/revision/list.rs b/gitoxide-core/src/repository/revision/list.rs index d1f80bcf5e5..ab2bb2a60ed 100644 --- a/gitoxide-core/src/repository/revision/list.rs +++ b/gitoxide-core/src/repository/revision/list.rs @@ -49,7 +49,7 @@ pub(crate) mod function { let commits = id .object()? .peel_to_kind(gix::object::Kind::Commit) - .context("Need commitish as starting point")? + .context("Need committish as starting point")? .id() .ancestors() .sorting(Sorting::ByCommitTimeNewestFirst) diff --git a/gix-command/src/lib.rs b/gix-command/src/lib.rs index e23275e738e..736c1c0e91f 100644 --- a/gix-command/src/lib.rs +++ b/gix-command/src/lib.rs @@ -86,7 +86,7 @@ mod prepare { /// Builder impl Prepare { - /// If called, the command will not be executed directly, but with `sh`, but ony if the + /// If called, the command will not be executed directly, but with `sh`, but only if the /// command passed to [`prepare`](super::prepare()) requires this. /// /// This also allows to pass shell scripts as command, or use commands that contain arguments which are subsequently diff --git a/gix-commitgraph/src/file/access.rs b/gix-commitgraph/src/file/access.rs index 79a40d75dbf..df9f6eb1782 100644 --- a/gix-commitgraph/src/file/access.rs +++ b/gix-commitgraph/src/file/access.rs @@ -16,7 +16,7 @@ impl File { self.base_graph_count } - /// Returns the commit data for the commit located at the given lexigraphical position. + /// Returns the commit data for the commit located at the given lexicographical position. /// /// `pos` must range from 0 to `self.num_commits()`. /// @@ -40,7 +40,7 @@ impl File { pub fn id_at(&self, pos: file::Position) -> &gix_hash::oid { assert!( pos.0 < self.num_commits(), - "expected lexigraphical position less than {}, got {}", + "expected lexicographical position less than {}, got {}", self.num_commits(), pos.0 ); @@ -115,7 +115,7 @@ impl File { pub(crate) fn commit_data_bytes(&self, pos: file::Position) -> &[u8] { assert!( pos.0 < self.num_commits(), - "expected lexigraphical position less than {}, got {}", + "expected lexicographical position less than {}, got {}", self.num_commits(), pos.0 ); diff --git a/gix-config-value/fuzz/fuzz_targets/fuzz_value.rs b/gix-config-value/fuzz/fuzz_targets/fuzz_value.rs index 468d700ff63..8bc413d89e1 100644 --- a/gix-config-value/fuzz/fuzz_targets/fuzz_value.rs +++ b/gix-config-value/fuzz/fuzz_targets/fuzz_value.rs @@ -47,7 +47,7 @@ fn fuzz(ctx: Ctx) -> Result<()> { fuzz_target!(|ctx: Ctx| { if let Err(e) = fuzz(ctx) { - // Excersize display/debug fmt code. + // Exercise display/debug fmt code. _ = black_box(format!("{e} {e:?}")); } }); diff --git a/gix-diff/src/blob/platform.rs b/gix-diff/src/blob/platform.rs index fb37b735c26..1c2d8fa0180 100644 --- a/gix-diff/src/blob/platform.rs +++ b/gix-diff/src/blob/platform.rs @@ -193,7 +193,7 @@ pub mod prepare_diff { /// is `false`. /// /// Use [`Outcome::interned_input()`] to easily obtain an interner for use with [`imara_diff::diff()`], or maintain one yourself - /// for greater re-use. + /// for greater reuse. InternalDiff { /// The algorithm we determined should be used, which is one of (in order, first set one wins): /// @@ -349,7 +349,7 @@ impl Platform { /// /// ### Important /// - /// If an error occours, the previous resource of `kind` will be cleared, preventing further diffs + /// If an error occurs, the previous resource of `kind` will be cleared, preventing further diffs /// unless another attempt succeeds. pub fn set_resource( &mut self, diff --git a/gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz b/gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz index 3e2b2e685351c381f051a98007dfb058a41d4f11..18e3c75e65181b1088c48b8976097795f286ff8a 100644 GIT binary patch literal 19236 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

rIN`H?l4B19UO?i~cS(_4O8wU8 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 L0ssI200dcDIbm0i literal 18456 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 { @@ -124,7 +124,7 @@ where } } -/// A wrapper for implementors of [`std::io::Write`] with interrupt checks on each write call. +/// A wrapper for implementers of [`std::io::Write`] with interrupt checks on each write call. /// /// It fails a [write][std::io::Write::write] while an interrupt was requested. pub struct Write<'a, W> { diff --git a/gix-filter/src/driver/shutdown.rs b/gix-filter/src/driver/shutdown.rs index af75bf1e283..992e74897fa 100644 --- a/gix-filter/src/driver/shutdown.rs +++ b/gix-filter/src/driver/shutdown.rs @@ -14,7 +14,7 @@ pub enum Mode { /// Lifecycle impl State { - /// Handle long-running processes according to `mode`. If an error occours, all remaining processes will be ignored automatically. + /// Handle long-running processes according to `mode`. If an error occurs, all remaining processes will be ignored automatically. /// Return a list of `(process, Option)` pub fn shutdown(self, mode: Mode) -> Result)>, std::io::Error> { let mut out = Vec::with_capacity(self.running.len()); diff --git a/gix-filter/src/pipeline/convert.rs b/gix-filter/src/pipeline/convert.rs index dac54940958..ebaa9c4577e 100644 --- a/gix-filter/src/pipeline/convert.rs +++ b/gix-filter/src/pipeline/convert.rs @@ -242,7 +242,7 @@ pub enum ToGitOutcome<'pipeline, R> { /// /// ### Panics /// -/// If `std::io::Read` is used on it and the output is delayed, a panic will occour. The caller is responsible for either disallowing delayed +/// If `std::io::Read` is used on it and the output is delayed, a panic will occur. The caller is responsible for either disallowing delayed /// results or if allowed, handle them. Use [`is_delayed()][Self::is_delayed()]. pub enum ToWorktreeOutcome<'input, 'pipeline> { /// The original input wasn't changed and the original buffer is present diff --git a/gix-filter/src/pipeline/mod.rs b/gix-filter/src/pipeline/mod.rs index 662e14ca15d..7dff070a4ce 100644 --- a/gix-filter/src/pipeline/mod.rs +++ b/gix-filter/src/pipeline/mod.rs @@ -103,7 +103,7 @@ impl Pipeline { &mut self.options } - /// Return our double-buffers for re-use by the caller. + /// Return our double-buffers for reuse by the caller. pub fn buffers_mut(&mut self) -> &mut gix_utils::Buffers { &mut self.bufs } diff --git a/gix-filter/tests/eol/convert_to_git.rs b/gix-filter/tests/eol/convert_to_git.rs index 0ab7d7e7929..c77860eaea5 100644 --- a/gix-filter/tests/eol/convert_to_git.rs +++ b/gix-filter/tests/eol/convert_to_git.rs @@ -101,7 +101,7 @@ fn crlf_in_index_prevents_conversion_to_lf() -> crate::Result { let mut buf = Vec::new(); let mut called = false; let changed = eol::convert_to_git( - b"elligible\n", + b"eligible\n", AttributesDigest::TextAutoInput, &mut buf, &mut |buf| { diff --git a/gix-index/src/extension/mod.rs b/gix-index/src/extension/mod.rs index 07edfdfe016..33b91c5517b 100644 --- a/gix-index/src/extension/mod.rs +++ b/gix-index/src/extension/mod.rs @@ -16,7 +16,7 @@ pub struct Iter<'a> { /// A structure to associate object ids of a tree with sections in the index entries list. /// -/// It allows to more quickly build trees by avoiding as it can quickly re-use portions of the index and its associated tree ids +/// It allows to more quickly build trees by avoiding as it can quickly reuse portions of the index and its associated tree ids /// if there was no change to them. Portions of this tree are invalidated as the index is changed. #[derive(PartialEq, Eq, Clone, Debug)] pub struct Tree { diff --git a/gix-index/src/fs.rs b/gix-index/src/fs.rs index 84e9454dfd1..7dbc8de5a98 100644 --- a/gix-index/src/fs.rs +++ b/gix-index/src/fs.rs @@ -73,7 +73,7 @@ impl Metadata { /// Return the time at which the underlying file was created. /// - /// Note that this differes from [`std::fs::Metadata::created()`] which would return + /// Note that this differs from [`std::fs::Metadata::created()`] which would return /// the inode birth time, which is notably different to what `git` does. pub fn created(&self) -> Option { #[cfg(not(windows))] diff --git a/gix-index/src/write.rs b/gix-index/src/write.rs index 2050ed80941..3e90d52e5be 100644 --- a/gix-index/src/write.rs +++ b/gix-index/src/write.rs @@ -5,7 +5,7 @@ use crate::{entry, extension, write::util::CountBytes, State, Version}; /// A way to specify which of the optional extensions to write. #[derive(Default, Debug, Copy, Clone)] pub enum Extensions { - /// Writes all available optional extensions to avoid loosing any information. + /// Writes all available optional extensions to avoid losing any information. #[default] All, /// Only write the given optional extensions, with each extension being marked by a boolean flag. diff --git a/gix-odb/src/store_impls/dynamic/verify.rs b/gix-odb/src/store_impls/dynamic/verify.rs index 94a916b98ed..a59ee2c5367 100644 --- a/gix-odb/src/store_impls/dynamic/verify.rs +++ b/gix-odb/src/store_impls/dynamic/verify.rs @@ -66,7 +66,7 @@ pub mod integrity { #[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Clone)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct IndexStatistics { - /// The path to the index or multi-pack index for which statics were gathered. + /// The path to the index or multi-pack index for which statistics were gathered. pub path: PathBuf, /// The actual statistics for the index at `path`. pub statistics: SingleOrMultiStatistics, diff --git a/gix-pack/src/cache/object.rs b/gix-pack/src/cache/object.rs index af1f7d0a4cd..1391f26efe6 100644 --- a/gix-pack/src/cache/object.rs +++ b/gix-pack/src/cache/object.rs @@ -1,4 +1,4 @@ -//! This module is a bit 'misplaced' if spelled out like '`gix_pack::cache::object::`*' but is best placed here for code re-use and +//! This module is a bit 'misplaced' if spelled out like '`gix_pack::cache::object::`*' but is best placed here for code reuse and //! general usefulness. use crate::cache; diff --git a/gix-pathspec/src/search/mod.rs b/gix-pathspec/src/search/mod.rs index a9c87377bf3..3544daec522 100644 --- a/gix-pathspec/src/search/mod.rs +++ b/gix-pathspec/src/search/mod.rs @@ -31,7 +31,7 @@ impl Search { /// there is none. It doesn't have to end at a directory boundary though, nor does it denote a directory. /// /// Note that the common_prefix is always matched case-sensitively, and it is useful to skip large portions of input. - /// Further, excluded pathspecs don't participate which makes this common prefix inclusive. To work correclty though, + /// Further, excluded pathspecs don't participate which makes this common prefix inclusive. To work correctly though, /// one will have to additionally match paths that have the common prefix with that pathspec itself to assure it is /// not excluded. pub fn common_prefix(&self) -> &BStr { diff --git a/gix-sec/src/identity.rs b/gix-sec/src/identity.rs index 9f660324697..88086aaedfe 100644 --- a/gix-sec/src/identity.rs +++ b/gix-sec/src/identity.rs @@ -133,7 +133,7 @@ mod impl_ { // Admin-group owned folders are considered owned by the current user, if they are in the admin group if !is_owned && IsWellKnownSid(token_owner, WinBuiltinAdministratorsSid).as_bool() { let mut is_member = BOOL::default(); - // TODO: re-use the handle + // TODO: reuse the handle match CheckTokenMembership(HANDLE::default(), token_owner, &mut is_member) { Err(e) => { err_msg = Some(format!("Couldn't check if user is an administrator: {}", e)) diff --git a/gix-status/src/lib.rs b/gix-status/src/lib.rs index 28c20145d4a..850c47ab8a7 100644 --- a/gix-status/src/lib.rs +++ b/gix-status/src/lib.rs @@ -19,7 +19,7 @@ pub trait Pathspec { /// there is none. It doesn't have to end at a directory boundary though, nor does it denote a directory. /// /// Note that the common_prefix is always matched case-sensitively, and it is useful to skip large portions of input. - /// Further, excluded pathspecs don't participate which makes this common prefix inclusive. To work correclty though, + /// Further, excluded pathspecs don't participate which makes this common prefix inclusive. To work correctly though, /// one will have to additionally match paths that have the common prefix with that pathspec itself to assure it is /// not excluded. fn common_prefix(&self) -> &BStr; diff --git a/gix-status/tests/status/index_as_worktree.rs b/gix-status/tests/status/index_as_worktree.rs index 36974af4540..7e3564be3af 100644 --- a/gix-status/tests/status/index_as_worktree.rs +++ b/gix-status/tests/status/index_as_worktree.rs @@ -68,7 +68,7 @@ fn fixture_filtered_detailed( mut prepare_index: impl FnMut(&mut gix_index::State), submodule_dirty: bool, ) -> Outcome { - // This can easily happen in some fixtures, which can cause flakyness. It's time-dependent after all. + // This can easily happen in some fixtures, which can cause flakiness. It's time-dependent after all. fn ignore_racyclean(mut out: Outcome) -> Outcome { out.racy_clean = 0; out @@ -116,7 +116,7 @@ fn fixture_filtered_detailed( ignore_racyclean(ignore_updated(ignore_worktree_stats(outcome))) } -/// Note that we also reset certain information to assure there is no flakyness - everything regarding race-detection otherwise can cause failures. +/// Note that we also reset certain information to assure there is no flakiness - everything regarding race-detection otherwise can cause failures. fn records_to_tuple<'index>(records: impl IntoIterator>) -> Vec> { records .into_iter() diff --git a/gix-trace/src/enabled.rs b/gix-trace/src/enabled.rs index 55468401667..5c039829f8f 100644 --- a/gix-trace/src/enabled.rs +++ b/gix-trace/src/enabled.rs @@ -264,7 +264,7 @@ macro_rules! fieldset { $crate::fieldset!(@ { $($out),*, $k } $($rest)*) }; - // Remainder is unparseable, but exists --- must be format args! + // Remainder is unparsable, but exists --- must be format args! (@ { $(,)* $($out:expr),* } $($rest:tt)+) => { $crate::fieldset!(@ { "message", $($out),*, }) }; diff --git a/gix-trace/src/lib.rs b/gix-trace/src/lib.rs index f82f5bc4e90..283716405d1 100644 --- a/gix-trace/src/lib.rs +++ b/gix-trace/src/lib.rs @@ -1,4 +1,4 @@ -//! A crate providing macros for creating spans in various detail levels. `coarse!` shoudl be used for top-level operations, whereas +//! A crate providing macros for creating spans in various detail levels. `coarse!` should be used for top-level operations, whereas //! `detail!` should be used in plumbing crates unless their operations are likely to cost a lot of time. //! //! The application is supposed to explicitly turn on tracing via `gix-features`. diff --git a/gix-traverse/src/tree/mod.rs b/gix-traverse/src/tree/mod.rs index d5b6f5d45cc..6a74ada28f3 100644 --- a/gix-traverse/src/tree/mod.rs +++ b/gix-traverse/src/tree/mod.rs @@ -47,7 +47,7 @@ pub mod visit { pub enum Action { /// Continue the traversal of entries. Continue, - /// Stop the traversal of entries, making this te last call to [`visit_(tree|nontree)(…)`][super::Visit::visit_nontree()]. + /// Stop the traversal of entries, making this the last call to [`visit_(tree|nontree)(…)`][super::Visit::visit_nontree()]. Cancel, /// Don't dive into the entry, skipping children effectively. Only useful in [`visit_tree(…)`][super::Visit::visit_tree()]. Skip, diff --git a/gix-url/tests/baseline.rs b/gix-url/tests/baseline.rs index c457d470ff1..99b0870549f 100644 --- a/gix-url/tests/baseline.rs +++ b/gix-url/tests/baseline.rs @@ -50,7 +50,7 @@ fn run() { assert_ne!(test_count, 0, "the baseline is never empty"); if failures.is_empty() { - todo!("The baseline is currently meddling with hooks, thats not needed anymore since the failure rate is 0: move this into a module of the normal tests"); + todo!("The baseline is currently meddling with hooks, that's not needed anymore since the failure rate is 0: move this into a module of the normal tests"); } let failure_count = failures.len(); diff --git a/gix-url/tests/parse/file.rs b/gix-url/tests/parse/file.rs index 70d8a4d875c..b7d518cec02 100644 --- a/gix-url/tests/parse/file.rs +++ b/gix-url/tests/parse/file.rs @@ -102,7 +102,7 @@ fn no_relative_paths_if_protocol() -> crate::Result { assert_matches::assert_matches!( gix_url::parse("file://.\\".into()), Err(gix_url::parse::Error::MissingRepositoryPath { .. }), - "DEVIATION: on windows, this parses with git into something nonesensical Diag: url=file://./ Diag: protocol=file Diag: hostandport=./ Diag: path=//./" + "DEVIATION: on windows, this parses with git into something nonsensical Diag: url=file://./ Diag: protocol=file Diag: hostandport=./ Diag: path=//./" ); } Ok(()) diff --git a/gix/Cargo.toml b/gix/Cargo.toml index 1f01f962057..e463eea3549 100644 --- a/gix/Cargo.toml +++ b/gix/Cargo.toml @@ -26,7 +26,7 @@ default = ["max-performance-safe", "comfort", "basic", "extras"] #! enabled as long as it doesn't sacrifice compatibility. Most users will be fine with that but will pay with higher compile times than necessary as they #! probably don't use all of these features. #! -#! **Thus it's recommended to take a moment and optimize build times by chosing only those 'Components' that you require.** *'Performance' relevant features should +#! **Thus it's recommended to take a moment and optimize build times by choosing only those 'Components' that you require.** *'Performance' relevant features should #! be chosen next to maximize efficiency.* #! #! #### Application Developers @@ -121,11 +121,11 @@ async-network-client = ["gix-protocol/async-client", "gix-pack/streaming-input", async-network-client-async-std = ["async-std", "async-network-client", "gix-transport/async-std"] ## Make `gix-protocol` available along with a blocking client, providing access to the `file://`, git://` and `ssh://` transports. blocking-network-client = ["gix-protocol/blocking-client", "gix-pack/streaming-input", "attributes", "credentials"] -## Stacks with `blocking-network-client` to provide support for HTTP/S using **curl**, and implies blocking networking as a whole, making the `https://` transport avaialble. +## Stacks with `blocking-network-client` to provide support for HTTP/S using **curl**, and implies blocking networking as a whole, making the `https://` transport available. blocking-http-transport-curl = ["blocking-network-client", "gix-transport/http-client-curl"] ## Stacks with `blocking-http-transport-curl` and also enables the `rustls` backend to avoid `openssl`. blocking-http-transport-curl-rustls = ["blocking-http-transport-curl", "dep:curl-for-configuration-only", "curl-for-configuration-only?/rustls"] -## Stacks with `blocking-network-client` to provide support for HTTP/S using **reqwest**, and implies blocking networking as a whole, making the `https://` transport avaialble. +## Stacks with `blocking-network-client` to provide support for HTTP/S using **reqwest**, and implies blocking networking as a whole, making the `https://` transport available. blocking-http-transport-reqwest = ["blocking-network-client", "gix-transport/http-client-reqwest"] ## Stacks with `blocking-http-transport-reqwest` and enables `https://` via the `rustls` crate. blocking-http-transport-reqwest-rust-tls = ["blocking-http-transport-reqwest", "reqwest-for-configuration-only/rustls-tls" ] @@ -139,7 +139,7 @@ blocking-http-transport-reqwest-native-tls = ["blocking-http-transport-reqwest", #! #### Performance #! #! The reason these features exist is to allow optimization for compile time and optimize for compatibility by default. This means that some performance options around -#! SHA1 and ZIP might not compile on all platforms, so it depeneds on the end-user who compiles the application to chose these based on their needs. +#! SHA1 and ZIP might not compile on all platforms, so it depends on the end-user who compiles the application to chose these based on their needs. ## 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. diff --git a/gix/src/assets/init/info/exclude b/gix/src/assets/init/info/exclude index 1beb19eeef0..5793df4cbf1 100644 --- a/gix/src/assets/init/info/exclude +++ b/gix/src/assets/init/info/exclude @@ -1,4 +1,4 @@ -# Thise file contains repository-wide exclude patterns that git will ignore. +# This file contains repository-wide exclude patterns that git will ignore. # They are local and will not be shared when pushing or pulling. # When using Rust the following would be typical exclude patterns. # Remove the '# ' prefix to let them take effect. diff --git a/gix/src/config/mod.rs b/gix/src/config/mod.rs index 301e19ba2b8..6f00337b1b1 100644 --- a/gix/src/config/mod.rs +++ b/gix/src/config/mod.rs @@ -144,7 +144,7 @@ pub mod diff { #[derive(Debug, thiserror::Error)] #[error("Failed to parse value of 'diff.{name}.{attribute}'")] pub struct Error { - /// The name fo the driver. + /// The name of the driver. pub name: BString, /// The name of the attribute we tried to parse. pub attribute: &'static str, @@ -604,7 +604,7 @@ pub(crate) struct Cache { // TODO: make core.precomposeUnicode available as well. } -/// Utillities shared privately across the crate, for lack of a better place. +/// Utilities shared privately across the crate, for lack of a better place. pub(crate) mod shared { use crate::{ config, diff --git a/gix/src/interrupt.rs b/gix/src/interrupt.rs index 3126572e39e..7df7f9536d3 100644 --- a/gix/src/interrupt.rs +++ b/gix/src/interrupt.rs @@ -193,7 +193,7 @@ where } } -/// A wrapper for implementors of [`std::io::Read`] or [`std::io::BufRead`] with interrupt support. +/// A wrapper for implementers of [`std::io::Read`] or [`std::io::BufRead`] with interrupt support. /// /// It fails a [read][`std::io::Read::read`] while an interrupt was requested. pub struct Read { diff --git a/gix/src/object/tree/mod.rs b/gix/src/object/tree/mod.rs index a8173fce46c..0523477c9ff 100644 --- a/gix/src/object/tree/mod.rs +++ b/gix/src/object/tree/mod.rs @@ -47,7 +47,7 @@ impl<'repo> Tree<'repo> { /// # Performance Notes /// /// Searching tree entries is currently done in sequence, which allows to the search to be allocation free. It would be possible - /// to re-use a vector and use a binary search instead, which might be able to improve performance over all. + /// to reuse a vector and use a binary search instead, which might be able to improve performance over all. /// However, a benchmark should be created first to have some data and see which trade-off to choose here. /// pub fn lookup_entry(&self, path: I, buf: &mut Vec) -> Result>, find::existing::Error> @@ -91,7 +91,7 @@ impl<'repo> Tree<'repo> { /// # Performance Notes /// /// Searching tree entries is currently done in sequence, which allows to the search to be allocation free. It would be possible - /// to re-use a vector and use a binary search instead, which might be able to improve performance over all. + /// to reuse a vector and use a binary search instead, which might be able to improve performance over all. /// However, a benchmark should be created first to have some data and see which trade-off to choose here. /// pub fn peel_to_entry(&mut self, path: I) -> Result>, find::existing::Error> diff --git a/gix/src/repository/config/branch.rs b/gix/src/repository/config/branch.rs index 7c1c65fe687..334db116786 100644 --- a/gix/src/repository/config/branch.rs +++ b/gix/src/repository/config/branch.rs @@ -99,7 +99,7 @@ impl crate::Repository { /// which would then lead to `refs/remotes/origin/other` to be returned instead. /// /// Note that if there is an ambiguity, that is if `name` maps to multiple tracking branches, the first matching mapping - /// is returned, according to the order in which the fetch or push refspecs occour in the configuration file. + /// is returned, according to the order in which the fetch or push refspecs occur in the configuration file. /// /// See also [`Reference::remote_tracking_ref_name()`](crate::Reference::remote_tracking_ref_name()). #[doc(alias = "branch_upstream_name", alias = "git2")] diff --git a/gix/src/types.rs b/gix/src/types.rs index 0dc81abae31..fc726309b17 100644 --- a/gix/src/types.rs +++ b/gix/src/types.rs @@ -150,7 +150,7 @@ pub struct Repository { pub(crate) work_tree: Option, /// The path to the resolved common directory if this is a linked worktree repository or it is otherwise set. pub(crate) common_dir: Option, - /// A free-list of re-usable object backing buffers + /// A free-list of reusable object backing buffers pub(crate) bufs: RefCell>>, /// A pre-assembled selection of often-accessed configuration values for quick access. pub(crate) config: crate::config::Cache, diff --git a/gix/tests/remote/fetch.rs b/gix/tests/remote/fetch.rs index 568a6cfa480..3f6b9b6ad87 100644 --- a/gix/tests/remote/fetch.rs +++ b/gix/tests/remote/fetch.rs @@ -345,7 +345,7 @@ mod blocking_and_async_io { for (shallow_args, expected) in [(None, [1, 7, 7]), (Some("--depth=2"), [1, 2, 2])] { if version == gix::protocol::transport::Protocol::V1 && shallow_args.is_some() { // TODO: We cannot yet handle shallow mode for V1 as it will send shallow-info as part of the handshake :/. - // It's probaby not the most important thing to be able to clone from a shallow remote anyway. + // It's probably not the most important thing to be able to clone from a shallow remote anyway. continue; } for (fetch_tags, expected_ref_count) in [fetch::Tags::None, fetch::Tags::Included, fetch::Tags::All] diff --git a/gix/tests/repository/config/remote.rs b/gix/tests/repository/config/remote.rs index 40d66da9827..0bca87da755 100644 --- a/gix/tests/repository/config/remote.rs +++ b/gix/tests/repository/config/remote.rs @@ -301,7 +301,7 @@ mod branch_remote { .expect("exists")? .shorten(), "origin/other", - "as above, but we covert it to the tracking branch" + "as above, but we convert it to the tracking branch" ); repo.config_snapshot_mut().set_value(&Push::DEFAULT, "simple")?; diff --git a/src/lib.rs b/src/lib.rs index 977d8694e89..64313c03533 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -24,5 +24,5 @@ #![allow(missing_docs)] #![forbid(unsafe_code)] -/// everything in common beteween the `gix` and `ein` binaries. +/// everything in common between the `gix` and `ein` binaries. pub mod shared; diff --git a/src/plumbing/options/mod.rs b/src/plumbing/options/mod.rs index 910a77d2eff..e2aab13aa61 100644 --- a/src/plumbing/options/mod.rs +++ b/src/plumbing/options/mod.rs @@ -78,7 +78,7 @@ pub struct Args { #[derive(Debug, clap::Subcommand)] pub enum Subcommands { - /// Subcommands for creating worktree archivs + /// Subcommands for creating worktree archives #[cfg(feature = "gitoxide-core-tools-archive")] Archive(archive::Platform), /// Subcommands for interacting with commit-graphs