Skip to content

Commit fd5c1f5

Browse files
committed
code_review: PR #692
* remove unnecessary namespace using * move `Commands.Branch.HasRemote` to `Commands.Remote.HasBranch` * remove `Commands.Branch.DeleteRemoteTracking` and check branch in `Commands.Branch.DeleteRemote` directly Signed-off-by: leo <[email protected]>
1 parent 8935bdd commit fd5c1f5

File tree

3 files changed

+24
-50
lines changed

3 files changed

+24
-50
lines changed

src/Commands/Branch.cs

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -48,31 +48,19 @@ public static bool DeleteRemote(string repo, string remote, string name)
4848
var cmd = new Command();
4949
cmd.WorkingDirectory = repo;
5050
cmd.Context = repo;
51-
cmd.SSHKey = new Config(repo).Get($"remote.{remote}.sshkey");
52-
cmd.Args = $"push {remote} --delete {name}";
53-
return cmd.Exec();
54-
}
5551

56-
public static bool DeleteRemoteTracking(string repo, string name)
57-
{
58-
var cmd = new Command();
59-
cmd.WorkingDirectory = repo;
60-
cmd.Context = repo;
61-
cmd.Args = $"branch -D -r {name}";
62-
return cmd.Exec();
63-
}
52+
bool exists = new Remote(repo).HasBranch(remote, name);
53+
if (exists)
54+
{
55+
cmd.SSHKey = new Config(repo).Get($"remote.{remote}.sshkey");
56+
cmd.Args = $"push {remote} --delete {name}";
57+
}
58+
else
59+
{
60+
cmd.Args = $"branch -D -r {remote}/{name}";
61+
}
6462

65-
public static bool HasRemote(string repo, string remote, string name)
66-
{
67-
var cmd = new Command();
68-
cmd.WorkingDirectory = repo;
69-
cmd.Context = repo;
70-
cmd.SSHKey = new Config(repo).Get($"remote.{remote}.sshkey");
71-
cmd.Args = $"ls-remote {remote} {name}";
72-
73-
var rs = cmd.ReadToEnd();
74-
75-
return rs.StdOut.Length > 0;
63+
return cmd.Exec();
7664
}
7765
}
7866
}

src/Commands/Remote.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,14 @@ public bool SetURL(string name, string url, bool isPush)
4545
Args = "remote set-url" + (isPush ? " --push " : " ") + $"{name} {url}";
4646
return Exec();
4747
}
48+
49+
public bool HasBranch(string remote, string branch)
50+
{
51+
SSHKey = new Config(WorkingDirectory).Get($"remote.{remote}.sshkey");
52+
Args = $"ls-remote {remote} {branch}";
53+
54+
var rs = ReadToEnd();
55+
return rs.IsSuccess && rs.StdOut.Trim().Length > 0;
56+
}
4857
}
4958
}

src/ViewModels/DeleteBranch.cs

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
using System.Threading.Tasks;
1+
using System.Threading.Tasks;
32

43
namespace SourceGit.ViewModels
54
{
@@ -57,34 +56,12 @@ public override Task<bool> Sure()
5756

5857
if (_alsoDeleteTrackingRemote && TrackingRemoteBranch != null)
5958
{
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-
59+
SetProgressDescription("Deleting remote-tracking branch...");
60+
Commands.Branch.DeleteRemote(_repo.FullPath, TrackingRemoteBranch.Remote, TrackingRemoteBranch.Name);
7661
}
7762
}
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
63+
else
8664
{
87-
SetProgressDescription("Deleting remote-tracking branch...");
8865
Commands.Branch.DeleteRemote(_repo.FullPath, Target.Remote, Target.Name);
8966
}
9067

0 commit comments

Comments
 (0)