Skip to main content

wip_git/commands/
drop.rs

1use crate::git;
2use crate::ref_name;
3
4pub struct DropResult {
5    pub name: String,
6    pub wip_ref: String,
7}
8
9pub fn run(name: String, remote: String) -> Result<DropResult, String> {
10    let user = ref_name::user()?;
11    let name = ref_name::resolve_name(Some(name))?;
12    let wip_ref = ref_name::wip_ref(&name, &user);
13
14    // Delete remote ref by pushing empty refspec
15    let delete_refspec = format!(":{wip_ref}");
16    git::git(&["push", &remote, &delete_refspec])?;
17
18    Ok(DropResult { name, wip_ref })
19}