use std::process::Command; use crate::bare::GitBare; use crate::error::{GitError, GitResult}; use crate::pb::DeleteBranchRequest; impl GitBare { pub fn delete_branch(&self, request: DeleteBranchRequest) -> GitResult<()> { let flag = if request.force { "-D" } else { "-d" }; let output = Command::new("git") .arg("--git-dir") .arg(&self.bare_dir) .args(["branch", flag, &request.name]) .output()?; if !output.status.success() { return Err(GitError::CommandFailed { status_code: output.status.code(), stderr: String::from_utf8_lossy(&output.stderr).into_owned(), }); } Ok(()) } }