Skip to content

Commit d5ad2a1

Browse files
committed
fix!: unify location of error type of Repository::diff_resource_cache().
1 parent 686823c commit d5ad2a1

File tree

6 files changed

+26
-27
lines changed

6 files changed

+26
-27
lines changed

gix/src/config/cache/access.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,10 @@ impl Cache {
127127
};
128128

129129
if let Some(command) = section.value(config::tree::Merge::DRIVER_COMMAND.name) {
130-
driver.command = command.into_owned().into();
130+
driver.command = command.into_owned();
131131
}
132132
if let Some(recursive_name) = section.value(config::tree::Merge::DRIVER_RECURSIVE.name) {
133-
driver.recursive = Some(recursive_name.into_owned().into());
133+
driver.recursive = Some(recursive_name.into_owned());
134134
}
135135
}
136136
Ok(out)

gix/src/object/tree/diff/for_each.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pub enum Error {
1818
#[error("The user-provided callback failed")]
1919
ForEach(#[source] Box<dyn std::error::Error + Send + Sync + 'static>),
2020
#[error(transparent)]
21-
ResourceCache(#[from] crate::repository::diff::resource_cache::Error),
21+
ResourceCache(#[from] crate::repository::diff_resource_cache::Error),
2222
#[error("Failure during rename tracking")]
2323
RenameTracking(#[from] tracker::emit::Error),
2424
}

gix/src/object/tree/diff/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ pub mod stats {
121121
#[allow(missing_docs)]
122122
pub enum Error {
123123
#[error(transparent)]
124-
CreateResourceCache(#[from] crate::repository::diff::resource_cache::Error),
124+
CreateResourceCache(#[from] crate::repository::diff_resource_cache::Error),
125125
#[error(transparent)]
126126
ForEachChange(#[from] crate::object::tree::diff::for_each::Error),
127127
}

gix/src/repository/diff.rs

+3-17
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,6 @@
1+
use crate::repository::diff_resource_cache;
12
use crate::Repository;
23

3-
///
4-
pub mod resource_cache {
5-
/// The error returned by [Repository::diff_resource_cache()](super::Repository::diff_resource_cache()).
6-
#[derive(Debug, thiserror::Error)]
7-
#[allow(missing_docs)]
8-
pub enum Error {
9-
#[error("Could not obtain resource cache for diffing")]
10-
ResourceCache(#[from] crate::diff::resource_cache::Error),
11-
#[error(transparent)]
12-
Index(#[from] crate::repository::index_or_load_from_head::Error),
13-
#[error(transparent)]
14-
AttributeStack(#[from] crate::config::attribute_stack::Error),
15-
}
16-
}
17-
184
/// Diff-utilities
195
impl Repository {
206
/// Create a resource cache for diffable objects, and configured with everything it needs to know to perform diffs
@@ -31,7 +17,7 @@ impl Repository {
3117
&self,
3218
mode: gix_diff::blob::pipeline::Mode,
3319
worktree_roots: gix_diff::blob::pipeline::WorktreeRoots,
34-
) -> Result<gix_diff::blob::Platform, resource_cache::Error> {
20+
) -> Result<gix_diff::blob::Platform, diff_resource_cache::Error> {
3521
let index = self.index_or_load_from_head()?;
3622
Ok(crate::diff::resource_cache(
3723
self,
@@ -52,7 +38,7 @@ impl Repository {
5238
/// Return a resource cache suitable for diffing blobs from trees directly, where no worktree checkout exists.
5339
///
5440
/// For more control, see [`diff_resource_cache()`](Self::diff_resource_cache).
55-
pub fn diff_resource_cache_for_tree_diff(&self) -> Result<gix_diff::blob::Platform, resource_cache::Error> {
41+
pub fn diff_resource_cache_for_tree_diff(&self) -> Result<gix_diff::blob::Platform, diff_resource_cache::Error> {
5642
self.diff_resource_cache(
5743
gix_diff::blob::pipeline::Mode::ToGit,
5844
gix_diff::blob::pipeline::WorktreeRoots::default(),

gix/src/repository/merge.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::config::cache::util::ApplyLeniencyDefault;
22
use crate::config::tree;
33
use crate::repository::merge_resource_cache;
44
use crate::Repository;
5+
use std::borrow::Cow;
56

67
/// Diff-utilities
78
impl Repository {
@@ -45,11 +46,7 @@ impl Repository {
4546
let filter = gix_filter::Pipeline::new(self.command_context()?, crate::filter::Pipeline::options(self)?);
4647
let filter = gix_merge::blob::Pipeline::new(worktree_roots, filter, self.config.merge_pipeline_options()?);
4748
let options = gix_merge::blob::platform::Options {
48-
default_driver: self
49-
.config
50-
.resolved
51-
.string(&tree::Merge::DEFAULT)
52-
.map(|name| name.into_owned()),
49+
default_driver: self.config.resolved.string(&tree::Merge::DEFAULT).map(Cow::into_owned),
5350
};
5451
let drivers = self.config.merge_drivers()?;
5552
Ok(gix_merge::blob::Platform::new(filter, mode, attrs, drivers, options))

gix/src/repository/mod.rs

+17-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ mod cache;
2323
mod config;
2424
///
2525
#[cfg(feature = "blob-diff")]
26-
pub mod diff;
26+
mod diff;
2727
///
2828
#[cfg(feature = "dirwalk")]
2929
mod dirwalk;
@@ -82,6 +82,22 @@ pub mod merge_resource_cache {
8282
}
8383
}
8484

85+
///
86+
#[cfg(feature = "blob-diff")]
87+
pub mod diff_resource_cache {
88+
/// The error returned by [Repository::diff_resource_cache()](crate::Repository::diff_resource_cache()).
89+
#[derive(Debug, thiserror::Error)]
90+
#[allow(missing_docs)]
91+
pub enum Error {
92+
#[error("Could not obtain resource cache for diffing")]
93+
ResourceCache(#[from] crate::diff::resource_cache::Error),
94+
#[error(transparent)]
95+
Index(#[from] crate::repository::index_or_load_from_head::Error),
96+
#[error(transparent)]
97+
AttributeStack(#[from] crate::config::attribute_stack::Error),
98+
}
99+
}
100+
85101
///
86102
#[cfg(feature = "tree-editor")]
87103
pub mod edit_tree {

0 commit comments

Comments
 (0)