Skip to content

Commit 44922d0

Browse files
committed
Adapt to changes in gix-ref
1 parent e179f82 commit 44922d0

File tree

14 files changed

+43
-34
lines changed

14 files changed

+43
-34
lines changed

gix-blame/tests/blame.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,10 @@ impl Fixture {
166166

167167
let mut reference = gix_ref::file::Store::find(&store, "HEAD")?;
168168

169-
// Needed for `peel_to_id_in_place`.
169+
// Needed for `peel_to_id`.
170170
use gix_ref::file::ReferenceExt;
171171

172-
let head_id = reference.peel_to_id_in_place(&store, &odb)?;
172+
let head_id = reference.peel_to_id(&store, &odb)?;
173173

174174
let git_dir = worktree_path.join(".git");
175175
let index = gix_index::File::at(git_dir.join("index"), gix_hash::Kind::Sha1, false, Default::default())?;

gix-negotiate/tests/baseline/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn run() -> crate::Result {
3636
.iter()
3737
.filter_map(|name| {
3838
refs.try_find(*name).expect("one tag per commit").map(|mut r| {
39-
r.peel_to_id_in_place(&refs, &store).expect("works");
39+
r.peel_to_id(&refs, &store).expect("works");
4040
r.target.into_id()
4141
})
4242
})

gix-protocol/src/fetch/negotiate.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -373,11 +373,7 @@ fn mark_all_refs_in_repo(
373373
let _span = gix_trace::detail!("mark_all_refs");
374374
for local_ref in store.iter()?.all()? {
375375
let mut local_ref = local_ref?;
376-
let id = local_ref.peel_to_id_in_place_packed(
377-
store,
378-
objects,
379-
store.cached_packed_buffer()?.as_ref().map(|b| &***b),
380-
)?;
376+
let id = local_ref.peel_to_id_packed(store, objects, store.cached_packed_buffer()?.as_ref().map(|b| &***b))?;
381377
let mut is_complete = false;
382378
if let Some(commit) = graph
383379
.get_or_insert_commit(id, |md| {

gix/src/clone/checkout.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ pub mod main_worktree {
9797
})?;
9898

9999
let root_tree_id = match &self.ref_name {
100-
Some(reference_val) => Some(repo.find_reference(reference_val)?.peel_to_id_in_place()?),
100+
Some(reference_val) => Some(repo.find_reference(reference_val)?.peel_to_id()?),
101101
None => repo.head()?.try_peel_to_id_in_place()?,
102102
};
103103

gix/src/commit.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ pub mod describe {
122122
.filter_map(Result::ok)
123123
.filter_map(|mut r: crate::Reference<'_>| {
124124
let target_id = r.target().try_id().map(ToOwned::to_owned);
125-
let peeled_id = r.peel_to_id_in_place().ok()?;
125+
let peeled_id = r.peel_to_id().ok()?;
126126
let (prio, tag_time) = match target_id {
127127
Some(target_id) if peeled_id != *target_id => {
128128
let tag = repo.find_object(target_id).ok()?.try_into_tag().ok()?;

gix/src/head/peel.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ impl<'repo> Head<'repo> {
128128
}
129129
Kind::Symbolic(r) => {
130130
let mut nr = r.clone().attach(self.repo);
131-
let peeled = nr.peel_to_id_in_place();
131+
let peeled = nr.peel_to_id();
132132
*r = nr.detach();
133133
peeled?
134134
}

gix/src/reference/iter.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,9 @@ impl<'r> Iterator for Iter<'_, 'r> {
112112
.and_then(|mut r| {
113113
if self.peel {
114114
let repo = &self.repo;
115-
r.peel_to_id_in_place_packed(
116-
&repo.refs,
117-
&repo.objects,
118-
self.peel_with_packed.as_ref().map(|p| &***p),
119-
)
120-
.map_err(|err| Box::new(err) as Box<dyn std::error::Error + Send + Sync + 'static>)
121-
.map(|_| r)
115+
r.peel_to_id_packed(&repo.refs, &repo.objects, self.peel_with_packed.as_ref().map(|p| &***p))
116+
.map_err(|err| Box::new(err) as Box<dyn std::error::Error + Send + Sync + 'static>)
117+
.map(|_| r)
122118
} else {
123119
Ok(r)
124120
}

gix/src/reference/mod.rs

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,26 @@ impl<'repo> Reference<'repo> {
6565
/// Peeling
6666
impl<'repo> Reference<'repo> {
6767
/// Follow all symbolic targets this reference might point to and peel all annotated tags
68-
/// to their first non-tag target, and return it,
68+
/// to their first non-tag target, and return it.
6969
///
7070
/// This is useful to learn where this reference is ultimately pointing to after following
7171
/// the chain of symbolic refs and annotated tags.
72+
#[deprecated = "Use `peel_to_id()` instead"]
7273
pub fn peel_to_id_in_place(&mut self) -> Result<Id<'repo>, peel::Error> {
73-
let oid = self.inner.peel_to_id_in_place(&self.repo.refs, &self.repo.objects)?;
74+
let oid = self.inner.peel_to_id(&self.repo.refs, &self.repo.objects)?;
75+
Ok(Id::from_id(oid, self.repo))
76+
}
77+
78+
/// Follow all symbolic targets this reference might point to and peel all annotated tags
79+
/// to their first non-tag target, and return it.
80+
///
81+
/// This is useful to learn where this reference is ultimately pointing to after following
82+
/// the chain of symbolic refs and annotated tags.
83+
///
84+
/// Note that this method mutates `self` in place if it does not already point to non-symbolic
85+
/// object.
86+
pub fn peel_to_id(&mut self) -> Result<Id<'repo>, peel::Error> {
87+
let oid = self.inner.peel_to_id(&self.repo.refs, &self.repo.objects)?;
7488
Ok(Id::from_id(oid, self.repo))
7589
}
7690

@@ -85,20 +99,23 @@ impl<'repo> Reference<'repo> {
8599
) -> Result<Id<'repo>, peel::Error> {
86100
let oid = self
87101
.inner
88-
.peel_to_id_in_place_packed(&self.repo.refs, &self.repo.objects, packed)?;
102+
.peel_to_id_packed(&self.repo.refs, &self.repo.objects, packed)?;
89103
Ok(Id::from_id(oid, self.repo))
90104
}
91105

92-
/// Similar to [`peel_to_id_in_place()`](Reference::peel_to_id_in_place()), but consumes this instance.
106+
/// Similar to [`peel_to_id()`](Reference::peel_to_id()), but consumes this instance.
93107
pub fn into_fully_peeled_id(mut self) -> Result<Id<'repo>, peel::Error> {
94-
self.peel_to_id_in_place()
108+
self.peel_to_id()
95109
}
96110

97111
/// Follow this reference's target until it points at an object directly, and peel that object until
98112
/// its type matches the given `kind`. It's an error to try to peel to a kind that this ref doesn't point to.
99113
///
100114
/// Note that this ref will point to the first target object afterward, which may be a tag. This is different
101115
/// from [`peel_to_id_in_place()`](Self::peel_to_id_in_place()) where it will point to the first non-tag object.
116+
///
117+
/// Note that `git2::Reference::peel` does not "peel in place", but returns a new object
118+
/// instead.
102119
#[doc(alias = "peel", alias = "git2")]
103120
pub fn peel_to_kind(&mut self, kind: gix_object::Kind) -> Result<Object<'repo>, peel::to_kind::Error> {
104121
let packed = self.repo.refs.cached_packed_buffer().map_err(|err| {
@@ -147,7 +164,7 @@ impl<'repo> Reference<'repo> {
147164
) -> Result<Object<'repo>, peel::to_kind::Error> {
148165
let target = self
149166
.inner
150-
.follow_to_object_in_place_packed(&self.repo.refs, packed)?
167+
.follow_to_object_packed(&self.repo.refs, packed)?
151168
.attach(self.repo);
152169
Ok(target.object()?.peel_to_kind(kind)?)
153170
}
@@ -175,7 +192,7 @@ impl<'repo> Reference<'repo> {
175192
) -> Result<Id<'repo>, follow::to_object::Error> {
176193
Ok(self
177194
.inner
178-
.follow_to_object_in_place_packed(&self.repo.refs, packed)?
195+
.follow_to_object_packed(&self.repo.refs, packed)?
179196
.attach(self.repo))
180197
}
181198

gix/src/remote/connection/fetch/update_refs/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ pub(crate) fn update(
127127

128128
match existing
129129
.try_id()
130-
.map_or_else(|| existing.clone().peel_to_id_in_place(), Ok)
130+
.map_or_else(|| existing.clone().peel_to_id(), Ok)
131131
.map(crate::Id::detach)
132132
{
133133
Ok(local_id) => {

gix/src/remote/connection/fetch/update_refs/tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -945,7 +945,7 @@ mod update {
945945
},
946946
TargetRef::Symbolic(name) => {
947947
let target = name.as_bstr().into();
948-
match r.peel_to_id_in_place() {
948+
match r.peel_to_id() {
949949
Ok(id) => gix_protocol::handshake::Ref::Symbolic {
950950
full_ref_name,
951951
target,

0 commit comments

Comments
 (0)