Skip to content

Commit

Permalink
refactor(branch): remove remove_prefix
Browse files Browse the repository at this point in the history
  • Loading branch information
claytonrcarter committed Dec 31, 2023
1 parent 8ca6b55 commit 6e789ba
Show file tree
Hide file tree
Showing 7 changed files with 8 additions and 21 deletions.
4 changes: 2 additions & 2 deletions git-branchless-lib/src/core/check_out.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ fn maybe_get_branch_name(
Ok(branch_name) => {
// To remove the `refs/heads/` prefix
let name = CategorizedReferenceName::new(branch_name);
Ok(Some(name.remove_prefix()?))
Ok(Some(name.render_suffix()))
}
Err(_) => Ok(current_target),
},
Expand Down Expand Up @@ -124,7 +124,7 @@ pub fn check_out_commit(
None => (None, None),
Some(CheckoutTarget::Reference(reference_name)) => {
let categorized_target = CategorizedReferenceName::new(&reference_name);
(Some(categorized_target.remove_prefix()?), None)
(Some(categorized_target.render_suffix()), None)
}
Some(CheckoutTarget::Oid(oid)) => (Some(oid.to_string()), Some(oid)),
Some(CheckoutTarget::Unknown(target)) => (Some(target), None),
Expand Down
4 changes: 2 additions & 2 deletions git-branchless-lib/src/core/repo_ext.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ https://github.com/arxanas/git-branchless/discussions/595 for more details.",
match CategorizedReferenceName::new(&main_branch_name) {
name @ CategorizedReferenceName::LocalBranch { .. } => {
if let Some(main_branch) =
self.find_branch(&name.remove_prefix()?, BranchType::Local)?
self.find_branch(&name.render_suffix(), BranchType::Local)?
{
if let Some(remote_name) = main_branch.get_push_remote_name()? {
return Ok(Some(remote_name));
Expand All @@ -139,7 +139,7 @@ https://github.com/arxanas/git-branchless/discussions/595 for more details.",
}

name @ CategorizedReferenceName::RemoteBranch { .. } => {
let name = name.remove_prefix()?;
let name = name.render_suffix();
if let Some((remote_name, _reference_name)) = name.split_once('/') {
return Ok(Some(remote_name.to_owned()));
}
Expand Down
2 changes: 1 addition & 1 deletion git-branchless-lib/src/core/rewrite/execute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ pub fn move_branches<'a>(
warn!(?reference_name, "Not deleting non-local-branch reference");
}
CategorizedReferenceName::LocalBranch { .. } => {
let branch_name = branch_name.remove_prefix()?;
let branch_name = branch_name.render_suffix();
match repo.find_branch(&branch_name, BranchType::Local) {
Ok(Some(mut branch)) => {
if let Err(err) = branch.delete() {
Expand Down
12 changes: 0 additions & 12 deletions git-branchless-lib/src/git/reference.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,18 +183,6 @@ impl<'a> CategorizedReferenceName<'a> {
}
}

/// Remove the prefix from the reference name. May raise an error if the
/// result couldn't be encoded as an `String` (shouldn't happen).
#[instrument]
pub fn remove_prefix(&self) -> Result<String> {
let (name, prefix): (_, &'static str) = match self {
Self::LocalBranch { name, prefix } => (name, prefix),
Self::RemoteBranch { name, prefix } => (name, prefix),
Self::OtherRef { name } => (name, ""),
};
Ok(name.strip_prefix(prefix).unwrap_or(name).to_owned())
}

/// Render the full name of the reference, including its prefix, lossily as
/// a `String`.
pub fn render_full(&self) -> String {
Expand Down
3 changes: 1 addition & 2 deletions git-branchless-record/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,7 @@ fn record(
],
)?),
[parent_commit] => {
let branch_name =
CategorizedReferenceName::new(reference_name).remove_prefix()?;
let branch_name = CategorizedReferenceName::new(reference_name).render_suffix();
repo.detach_head(&head_info)?;
try_exit_code!(git_run_info.run(
effects,
Expand Down
2 changes: 1 addition & 1 deletion git-branchless-submit/src/branch_forge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ impl Forge for BranchForge<'_> {
let mut branch_infos = HashMap::new();
for branch_reference_name in branch_reference_names {
let branch_name = match CategorizedReferenceName::new(&branch_reference_name) {
name @ CategorizedReferenceName::LocalBranch { .. } => name.remove_prefix()?,
name @ CategorizedReferenceName::LocalBranch { .. } => name.render_suffix(),
CategorizedReferenceName::RemoteBranch { .. }
| CategorizedReferenceName::OtherRef { .. } => continue,
};
Expand Down
2 changes: 1 addition & 1 deletion git-branchless-undo/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,7 @@ fn extract_checkout_target(
additional_args: match ref_name {
Some(ref_name) => {
let branch_name = CategorizedReferenceName::new(ref_name);
vec!["-B".into(), branch_name.remove_prefix()?.into()]
vec!["-B".into(), branch_name.render_suffix().into()]
}
None => Default::default(),
},
Expand Down

0 comments on commit 6e789ba

Please sign in to comment.