diff --git a/crates/editor/src/blame_entry_tooltip.rs b/crates/editor/src/blame_entry_tooltip.rs index fc728a6d32..7864338550 100644 --- a/crates/editor/src/blame_entry_tooltip.rs +++ b/crates/editor/src/blame_entry_tooltip.rs @@ -128,8 +128,7 @@ impl Render for BlameEntryTooltip { let author_email = self.blame_entry.author_mail.clone(); - let pretty_commit_id = format!("{}", self.blame_entry.sha); - let short_commit_id = pretty_commit_id.chars().take(6).collect::(); + let short_commit_id = self.blame_entry.sha.display_short(); let absolute_timestamp = blame_entry_absolute_timestamp(&self.blame_entry, cx); let message = self diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 8f7eeea3e8..2c54a03ed9 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -3360,8 +3360,7 @@ fn render_blame_entry( let relative_timestamp = blame_entry_relative_timestamp(&blame_entry, cx); - let pretty_commit_id = format!("{}", blame_entry.sha); - let short_commit_id = pretty_commit_id.chars().take(6).collect::(); + let short_commit_id = blame_entry.sha.display_short(); let author_name = blame_entry.author.as_deref().unwrap_or(""); let name = util::truncate_and_trailoff(author_name, 20); diff --git a/crates/git/src/git.rs b/crates/git/src/git.rs index 3664a065a1..92fb6ad843 100644 --- a/crates/git/src/git.rs +++ b/crates/git/src/git.rs @@ -37,6 +37,11 @@ impl Oid { pub(crate) fn is_zero(&self) -> bool { self.0.is_zero() } + + /// Returns this [`Oid`] as a short SHA. + pub fn display_short(&self) -> String { + self.to_string().chars().take(7).collect() + } } impl FromStr for Oid {