refactor: rewrite branch auto-select after remote changed while pulling (#342)

This commit is contained in:
leo 2024-08-09 14:08:25 +08:00
parent f98423b4c7
commit 3a54471ea5
No known key found for this signature in database

View file

@ -182,30 +182,29 @@ namespace SourceGit.ViewModels
RemoteBranches = branches; RemoteBranches = branches;
var autoSelectedBranch = false; var autoSelectedBranch = false;
if (!string.IsNullOrEmpty(_current.Upstream)) if (!string.IsNullOrEmpty(_current.Upstream) &&
_current.Upstream.StartsWith($"refs/remotes/{remoteName}/", System.StringComparison.Ordinal))
{ {
if (_current.Upstream.StartsWith($"refs/remotes/{remoteName}/", System.StringComparison.Ordinal)) foreach (var branch in branches)
{ {
foreach (var branch in branches) if (_current.Upstream == branch.FullName)
{ {
if (_current.Upstream == branch.FullName) SelectedBranch = branch;
{ autoSelectedBranch = true;
SelectedBranch = branch; break;
autoSelectedBranch = true;
break;
}
} }
} }
else }
if (!autoSelectedBranch)
{
foreach (var branch in branches)
{ {
foreach (var branch in branches) if (_current.Name == branch.Name)
{ {
if (_current.Name == branch.Name) SelectedBranch = branch;
{ autoSelectedBranch = true;
SelectedBranch = branch; break;
autoSelectedBranch = true;
break;
}
} }
} }
} }