refactor: re-implement git stash apply

* supports `--index` option
* add an option to drop selected stash after applying
* remove `Pop` context menu for stash

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo 2025-02-06 16:33:55 +08:00
parent dbb1df5f8b
commit 7089f29b85
No known key found for this signature in database
9 changed files with 121 additions and 22 deletions

View file

@ -73,27 +73,22 @@ namespace SourceGit.Commands
return Exec();
}
public bool Apply(string name = null)
public bool Apply(string name, bool restoreIndex)
{
Args = "stash apply -q";
if (!string.IsNullOrEmpty(name))
Args += $" \"{name}\"";
var opts = restoreIndex ? "--index" : string.Empty;
Args = $"stash apply -q {opts} \"{name}\"";
return Exec();
}
public bool Pop(string name = null)
public bool Pop(string name)
{
Args = "stash pop -q";
if (!string.IsNullOrEmpty(name))
Args += $" \"{name}\"";
Args = $"stash pop -q \"{name}\"";
return Exec();
}
public bool Drop(string name = null)
public bool Drop(string name)
{
Args = "stash drop -q";
if (!string.IsNullOrEmpty(name))
Args += $" \"{name}\"";
Args = $"stash drop -q \"{name}\"";
return Exec();
}