From 961c18319ff9625258655316b23983ee6016db72 Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Wed, 19 Oct 2022 15:35:35 +0200 Subject: [PATCH] Test canonical refs are set Signed-off-by: Alexis Sellier --- radicle/src/git.rs | 4 +++- radicle/src/rad.rs | 13 +++++++++++++ radicle/src/storage/git.rs | 22 +++++++++++----------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/radicle/src/git.rs b/radicle/src/git.rs index 1175eecd..4e00b8e4 100644 --- a/radicle/src/git.rs +++ b/radicle/src/git.rs @@ -18,7 +18,9 @@ pub use ext::NotFound; pub use ext::Oid; pub use git2 as raw; pub use git_ref_format as fmt; -pub use git_ref_format::{lit, name, refname, Component, Namespaced, Qualified, RefStr, RefString}; +pub use git_ref_format::{ + lit, name, qualified, refname, Component, Namespaced, Qualified, RefStr, RefString, +}; pub use git_url as url; pub use git_url::Url; pub use radicle_git_ext as ext; diff --git a/radicle/src/rad.rs b/radicle/src/rad.rs index 97f07e3f..1ec9cc42 100644 --- a/radicle/src/rad.rs +++ b/radicle/src/rad.rs @@ -352,6 +352,19 @@ mod tests { .collect::>() .unwrap(); + let project_repo = storage.repository(proj).unwrap(); + let (head, _) = project_repo.head().unwrap(); + + // Test canonical refs. + assert_eq!(project_repo.raw().refname_to_id("HEAD").unwrap(), *head); + assert_eq!( + project_repo + .raw() + .refname_to_id("refs/heads/master") + .unwrap(), + *head + ); + assert_eq!(remotes[&public_key].refs, refs); assert_eq!(project.name, "acme"); assert_eq!(project.description, "Acme's repo"); diff --git a/radicle/src/storage/git.rs b/radicle/src/storage/git.rs index 6b5b022c..e40c3326 100644 --- a/radicle/src/storage/git.rs +++ b/radicle/src/storage/git.rs @@ -424,6 +424,17 @@ impl ReadRepository for Repository { self.backend.find_reference(&name).map_err(git::Error::from) } + fn reference_oid( + &self, + remote: &RemoteId, + reference: &git::Qualified, + ) -> Result { + let name = reference.with_namespace(remote.into()); + let oid = self.backend.refname_to_id(&name)?; + + Ok(oid.into()) + } + fn commit(&self, oid: Oid) -> Result { self.backend .find_commit(oid.into()) @@ -437,17 +448,6 @@ impl ReadRepository for Repository { Ok(revwalk) } - fn reference_oid( - &self, - remote: &RemoteId, - reference: &git::Qualified, - ) -> Result { - let name = reference.with_namespace(remote.into()); - let oid = self.backend.refname_to_id(&name)?; - - Ok(oid.into()) - } - fn remote(&self, remote: &RemoteId) -> Result, refs::Error> { let refs = SignedRefs::load(remote, self)?; Ok(Remote::new(*remote, refs))