From 111480cd6ef496b1a5bed2283b2a0f05181db77e Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Wed, 19 Oct 2022 14:47:12 +0200 Subject: [PATCH] Make use of `git2::Repository::refname_to_id` Signed-off-by: Alexis Sellier --- radicle/src/rad.rs | 11 +++-------- radicle/src/storage/git.rs | 7 ++----- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/radicle/src/rad.rs b/radicle/src/rad.rs index e014c657..97f07e3f 100644 --- a/radicle/src/rad.rs +++ b/radicle/src/rad.rs @@ -125,10 +125,8 @@ pub fn fork_remote( let repository = storage.repository(proj)?; let raw = repository.raw(); - let remote_head = raw - .find_reference(&git::refs::storage::branch(remote, &project.default_branch))? - .target() - .ok_or(ForkError::InvalidReference)?; + let remote_head = + raw.refname_to_id(&git::refs::storage::branch(remote, &project.default_branch))?; raw.reference( &git::refs::storage::branch(me, &project.default_branch), remote_head, @@ -136,10 +134,7 @@ pub fn fork_remote( &format!("creating default branch for {me}"), )?; - let remote_id = raw - .find_reference(&git::refs::storage::id(remote))? - .target() - .ok_or(ForkError::InvalidReference)?; + let remote_id = raw.refname_to_id(&git::refs::storage::id(remote))?; raw.reference( &git::refs::storage::id(me), remote_id, diff --git a/radicle/src/storage/git.rs b/radicle/src/storage/git.rs index 9a0b7125..a6360066 100644 --- a/radicle/src/storage/git.rs +++ b/radicle/src/storage/git.rs @@ -437,11 +437,8 @@ impl ReadRepository for Repository { remote: &RemoteId, reference: &git::Qualified, ) -> Result { - // TODO: Use native git2 function for this. - let oid = self - .reference(remote, reference)? - .target() - .ok_or(git::Error::NotFound(git::NotFound::NoRefTarget))?; + let name = reference.with_namespace(remote.into()); + let oid = self.backend.refname_to_id(&name)?; Ok(oid.into()) }