perf: minimize temporary strings for better performance (#1240)

(cherry picked from commit f4dad2bf551ead5640a500297a4a6f408aef1350)
This commit is contained in:
qiufengshe 2025-04-23 21:14:41 +08:00 committed by leo
parent 7e282b13fa
commit ea680782fe
No known key found for this signature in database

View file

@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -635,7 +635,7 @@ namespace SourceGit.ViewModels
} }
else if (_inProgressContext is RevertInProgress revert) else if (_inProgressContext is RevertInProgress revert)
{ {
useTheirs.Header = App.Text("FileCM.ResolveUsing", revert.Head.SHA.Substring(0, 10) + " (revert)"); useTheirs.Header = App.Text("FileCM.ResolveUsing", $"{revert.Head.SHA.AsSpan().Slice(0, 10)} (revert)");
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name); useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
} }
else if (_inProgressContext is MergeInProgress merge) else if (_inProgressContext is MergeInProgress merge)
@ -771,7 +771,7 @@ namespace SourceGit.ViewModels
byExtension.Header = App.Text("WorkingCopy.AddToGitIgnore.Extension", extension); byExtension.Header = App.Text("WorkingCopy.AddToGitIgnore.Extension", extension);
byExtension.Click += (_, e) => byExtension.Click += (_, e) =>
{ {
Commands.GitIgnore.Add(_repo.FullPath, "*" + extension); Commands.GitIgnore.Add(_repo.FullPath, $"*{extension}");
e.Handled = true; e.Handled = true;
}; };
addToIgnore.Items.Add(byExtension); addToIgnore.Items.Add(byExtension);
@ -782,7 +782,7 @@ namespace SourceGit.ViewModels
byExtensionInSameFolder.Click += (_, e) => byExtensionInSameFolder.Click += (_, e) =>
{ {
var dir = Path.GetDirectoryName(change.Path).Replace("\\", "/"); var dir = Path.GetDirectoryName(change.Path).Replace("\\", "/");
Commands.GitIgnore.Add(_repo.FullPath, dir + "/*" + extension); Commands.GitIgnore.Add(_repo.FullPath, $"{dir}/*{extension}");
e.Handled = true; e.Handled = true;
}; };
addToIgnore.Items.Add(byExtensionInSameFolder); addToIgnore.Items.Add(byExtensionInSameFolder);
@ -824,7 +824,7 @@ namespace SourceGit.ViewModels
lfsTrackByExtension.Click += async (_, e) => lfsTrackByExtension.Click += async (_, e) =>
{ {
var log = _repo.CreateLog("Track LFS"); var log = _repo.CreateLog("Track LFS");
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Track("*" + extension, false, log)); var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Track($"*{extension}", false, log));
if (succ) if (succ)
App.SendNotification(_repo.FullPath, $"Tracking all *{extension} files successfully!"); App.SendNotification(_repo.FullPath, $"Tracking all *{extension} files successfully!");
@ -993,7 +993,7 @@ namespace SourceGit.ViewModels
} }
else if (_inProgressContext is RevertInProgress revert) else if (_inProgressContext is RevertInProgress revert)
{ {
useTheirs.Header = App.Text("FileCM.ResolveUsing", revert.Head.SHA.Substring(0, 10) + " (revert)"); useTheirs.Header = App.Text("FileCM.ResolveUsing", $"{revert.Head.SHA.AsSpan().Slice(0, 10)} (revert)");
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name); useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
} }
else if (_inProgressContext is MergeInProgress merge) else if (_inProgressContext is MergeInProgress merge)
@ -1417,7 +1417,7 @@ namespace SourceGit.ViewModels
var home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); var home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
var prefixLen = home.EndsWith('/') ? home.Length - 1 : home.Length; var prefixLen = home.EndsWith('/') ? home.Length - 1 : home.Length;
if (gitTemplate.StartsWith(home, StringComparison.Ordinal)) if (gitTemplate.StartsWith(home, StringComparison.Ordinal))
friendlyName = "~" + gitTemplate.Substring(prefixLen); friendlyName = $"~{gitTemplate.AsSpan().Slice(prefixLen)}";
} }
var gitTemplateItem = new MenuItem(); var gitTemplateItem = new MenuItem();