diff --git a/src/Files.App/Utils/Git/GitHelpers.cs b/src/Files.App/Utils/Git/GitHelpers.cs
index 3fca3c798e87..985122ae0c5d 100644
--- a/src/Files.App/Utils/Git/GitHelpers.cs
+++ b/src/Files.App/Utils/Git/GitHelpers.cs
@@ -22,6 +22,9 @@ internal static partial class GitHelpers
///
public static string GetOriginRepositoryName(string? path) => _implementation.GetOriginRepositoryName(path);
+ ///
+ public static Task GetBranchNames(string? path) => _implementation.GetBranchNames(path);
+
#region Legacy implementation
private static readonly StatusCenterViewModel StatusCenterViewModel = Ioc.Default.GetRequiredService();
@@ -71,38 +74,6 @@ private set
public static event EventHandler? GitFetchCompleted;
- public static async Task GetBranchesNames(string? path)
- {
- if (string.IsNullOrWhiteSpace(path) || !IsRepoValid(path))
- return [];
-
- var (result, returnValue) = await DoGitOperationAsync<(GitOperationResult, BranchItem[])>(() =>
- {
- var branches = Array.Empty();
- var result = GitOperationResult.Success;
- try
- {
- using var repository = new Repository(path);
-
- branches = GetValidBranches(repository.Branches)
- .OrderByDescending(b => b.Tip?.Committer.When)
- .GroupBy(b => b.IsRemote)
- .SelectMany(g => g.Take(MAX_NUMBER_OF_BRANCHES))
- .OrderByDescending(b => b.IsCurrentRepositoryHead)
- .Select(b => new BranchItem(b.FriendlyName, b.IsCurrentRepositoryHead, b.IsRemote, TryGetTrackingDetails(b)?.AheadBy ?? 0, TryGetTrackingDetails(b)?.BehindBy ?? 0))
- .ToArray();
- }
- catch (Exception)
- {
- result = GitOperationResult.GenericError;
- }
-
- return (result, branches);
- });
-
- return returnValue;
- }
-
public static async Task GetRepositoryHead(string? path)
{
if (string.IsNullOrWhiteSpace(path) || !IsRepoValid(path))
@@ -821,6 +792,7 @@ private static bool IsAuthorizationException(Exception ex)
ex.Message.Contains("authentication replays", StringComparison.OrdinalIgnoreCase);
}
+ // Method already moved into abstraction
private static async Task DoGitOperationAsync(Func