1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
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,
}
}
}
|