58 lines · 2.4 KB · Rust
RawDownload
use crate::config; /// The error returned by [`receive()`](super::Prepare::receive()).#[derive(Debug, thiserror::Error)]#[allow(missing_docs)]pub enum Error {    #[error("The value to configure pack threads should be 0 to auto-configure or the amount of threads to use")]    PackThreads(#[from] config::unsigned_integer::Error),    #[error("The value to configure the pack index version should be 1 or 2")]    PackIndexVersion(#[from] config::key::GenericError),    #[error("Could not decode server reply")]    FetchResponse(#[from] gix_protocol::fetch::response::Error),    #[error("Cannot fetch from a remote that uses {remote} while local repository uses {local} for object hashes")]    IncompatibleObjectHash {        local: gix_hash::Kind,        remote: gix_hash::Kind,    },    #[error(transparent)]    Negotiate(#[from] super::negotiate::Error),    #[error(transparent)]    Client(#[from] gix_protocol::transport::client::Error),    #[error(transparent)]    WritePack(#[from] gix_pack::bundle::write::Error),    #[error(transparent)]    UpdateRefs(#[from] super::refs::update::Error),    #[error("Failed to remove .keep file at \"{}\"", path.display())]    RemovePackKeepFile {        path: std::path::PathBuf,        source: std::io::Error,    },    #[error(transparent)]    ShallowOpen(#[from] crate::shallow::open::Error),    #[error("Server lack feature {feature:?}: {description}")]    MissingServerFeature {        feature: &'static str,        description: &'static str,    },    #[error("Could not write 'shallow' file to incorporate remote updates after fetching")]    WriteShallowFile(#[from] crate::shallow::write::Error),    #[error("'shallow' file could not be locked in preparation for writing changes")]    LockShallowFile(#[from] gix_lock::acquire::Error),    #[error("Could not obtain configuration to learn if shallow remotes should be rejected")]    RejectShallowRemoteConfig(#[from] config::boolean::Error),    #[error("Receiving objects from shallow remotes is prohibited due to the value of `clone.rejectShallow`")]    RejectShallowRemote,    #[error(transparent)]    NegotiationAlgorithmConfig(#[from] config::key::GenericErrorWithValue),} impl gix_protocol::transport::IsSpuriousError for Error {    fn is_spurious(&self) -> bool {        match self {            Error::FetchResponse(err) => err.is_spurious(),            Error::Client(err) => err.is_spurious(),            _ => false,        }    }}