fix: delete both case (local & remote-tracking)

- We have local and remote-tracking but not a remote branch. We need to remove both or only the tracking based on the checkbox and on the 'hasRemote' condition
This commit is contained in:
adelacruz 2024-11-12 20:37:46 +01:00
parent 67e3128c80
commit ec2057dca7

View file

@ -57,8 +57,22 @@ namespace SourceGit.ViewModels
if (_alsoDeleteTrackingRemote && TrackingRemoteBranch != null) if (_alsoDeleteTrackingRemote && TrackingRemoteBranch != null)
{ {
SetProgressDescription("Deleting remote-tracking branch...");
Commands.Branch.DeleteRemote(_repo.FullPath, TrackingRemoteBranch.Remote, TrackingRemoteBranch.Name); if (Commands.Branch.HasRemote(_repo.FullPath, TrackingRemoteBranch.Remote, TrackingRemoteBranch.Name))
{
SetProgressDescription("Deleting remote-tracking branch and remote branch...");
Commands.Branch.DeleteRemote(_repo.FullPath, TrackingRemoteBranch.Remote, TrackingRemoteBranch.Name);
}
else
{
SetProgressDescription("Deleting remote-tracking branch...");
var remoteTrackingBranch = $"{TrackingRemoteBranch.Remote}/{TrackingRemoteBranch.Name}";
Commands.Branch.DeleteRemoteTracking(_repo.FullPath, remoteTrackingBranch);
}
} }
} }
else if(!Commands.Branch.HasRemote(_repo.FullPath, Target.Remote, Target.Name)) else if(!Commands.Branch.HasRemote(_repo.FullPath, Target.Remote, Target.Name))