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}