2024-02-06 15:08:37 +08:00
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
2024-03-18 09:37:06 +08:00
|
|
|
|
namespace SourceGit.ViewModels
|
|
|
|
|
{
|
|
|
|
|
public class Revert : Popup
|
|
|
|
|
{
|
|
|
|
|
public Models.Commit Target
|
|
|
|
|
{
|
2024-02-06 15:08:37 +08:00
|
|
|
|
get;
|
|
|
|
|
private set;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-18 09:37:06 +08:00
|
|
|
|
public bool AutoCommit
|
|
|
|
|
{
|
2024-02-06 15:08:37 +08:00
|
|
|
|
get;
|
|
|
|
|
set;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-18 09:37:06 +08:00
|
|
|
|
public Revert(Repository repo, Models.Commit target)
|
|
|
|
|
{
|
2024-02-06 15:08:37 +08:00
|
|
|
|
_repo = repo;
|
|
|
|
|
Target = target;
|
|
|
|
|
AutoCommit = true;
|
|
|
|
|
View = new Views.Revert() { DataContext = this };
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-18 09:37:06 +08:00
|
|
|
|
public override Task<bool> Sure()
|
|
|
|
|
{
|
2024-02-06 15:08:37 +08:00
|
|
|
|
_repo.SetWatcherEnabled(false);
|
2024-02-26 11:29:57 +08:00
|
|
|
|
ProgressDescription = $"Revert commit '{Target.SHA}' ...";
|
|
|
|
|
|
2024-03-18 09:37:06 +08:00
|
|
|
|
return Task.Run(() =>
|
|
|
|
|
{
|
2024-02-06 15:08:37 +08:00
|
|
|
|
var succ = new Commands.Revert(_repo.FullPath, Target.SHA, AutoCommit).Exec();
|
|
|
|
|
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
|
|
|
|
return succ;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-18 09:37:06 +08:00
|
|
|
|
private readonly Repository _repo = null;
|
2024-02-06 15:08:37 +08:00
|
|
|
|
}
|
2024-03-31 16:54:29 +08:00
|
|
|
|
}
|