|
1 |
| -using System.Threading.Tasks; |
| 1 | +using System; |
| 2 | +using System.Threading.Tasks; |
2 | 3 |
|
3 | 4 | namespace SourceGit.ViewModels
|
4 | 5 | {
|
@@ -56,12 +57,34 @@ public override Task<bool> Sure()
|
56 | 57 |
|
57 | 58 | if (_alsoDeleteTrackingRemote && TrackingRemoteBranch != null)
|
58 | 59 | {
|
59 |
| - SetProgressDescription("Deleting tracking remote branch..."); |
60 |
| - Commands.Branch.DeleteRemote(_repo.FullPath, TrackingRemoteBranch.Remote, TrackingRemoteBranch.Name); |
| 60 | + |
| 61 | + if (Commands.Branch.HasRemote(_repo.FullPath, TrackingRemoteBranch.Remote, TrackingRemoteBranch.Name)) |
| 62 | + { |
| 63 | + SetProgressDescription("Deleting remote-tracking branch and remote branch..."); |
| 64 | + |
| 65 | + Commands.Branch.DeleteRemote(_repo.FullPath, TrackingRemoteBranch.Remote, TrackingRemoteBranch.Name); |
| 66 | + } |
| 67 | + else |
| 68 | + { |
| 69 | + SetProgressDescription("Deleting remote-tracking branch..."); |
| 70 | + |
| 71 | + var remoteTrackingBranch = $"{TrackingRemoteBranch.Remote}/{TrackingRemoteBranch.Name}"; |
| 72 | + |
| 73 | + Commands.Branch.DeleteRemoteTracking(_repo.FullPath, remoteTrackingBranch); |
| 74 | + } |
| 75 | + |
61 | 76 | }
|
62 | 77 | }
|
63 |
| - else |
| 78 | + else if(!Commands.Branch.HasRemote(_repo.FullPath, Target.Remote, Target.Name)) |
| 79 | + { |
| 80 | + SetProgressDescription("Remote branch not found. Deleting remote-tracking branch..."); |
| 81 | + var remoteTrackingBranch = $"{Target.Remote}/{Target.Name}"; |
| 82 | + |
| 83 | + Commands.Branch.DeleteRemoteTracking(_repo.FullPath, remoteTrackingBranch); |
| 84 | + } |
| 85 | + else |
64 | 86 | {
|
| 87 | + SetProgressDescription("Deleting remote-tracking branch..."); |
65 | 88 | Commands.Branch.DeleteRemote(_repo.FullPath, Target.Remote, Target.Name);
|
66 | 89 | }
|
67 | 90 |
|
|
0 commit comments