diff --git a/TRANSLATION.md b/TRANSLATION.md
index 13efcafa..8593e981 100644
--- a/TRANSLATION.md
+++ b/TRANSLATION.md
@@ -6,11 +6,29 @@ This document shows the translation status of each locale file in the repository
### 
-### 
+### 
-### 
+
+Missing keys in de_DE.axaml
-### 
+- Text.Preferences.General.ShowChangesPageByDefault
+- Text.WorkingCopy.ClearCommitHistories
+- Text.WorkingCopy.ClearCommitHistories.Confirm
+
+
+
+### 
+
+
+Missing keys in es_ES.axaml
+
+- Text.Preferences.General.ShowChangesPageByDefault
+- Text.WorkingCopy.ClearCommitHistories
+- Text.WorkingCopy.ClearCommitHistories.Confirm
+
+
+
+### 
Missing keys in fr_FR.axaml
@@ -113,7 +131,8 @@ This document shows the translation status of each locale file in the repository
- Text.MoveSubmodule
- Text.MoveSubmodule.MoveTo
- Text.MoveSubmodule.Submodule
-- Text.Preferences.Appearance.EnableCompactFolders
+- Text.Preferences.General.EnableCompactFolders
+- Text.Preferences.General.ShowChangesPageByDefault
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
- Text.Preferences.Git.UseLibsecret
- Text.Pull.RecurseSubmodules
@@ -178,6 +197,8 @@ This document shows the translation status of each locale file in the repository
- Text.ViewLogs.CopyLog
- Text.ViewLogs.Delete
- Text.WorkingCopy.AddToGitIgnore.InFolder
+- Text.WorkingCopy.ClearCommitHistories
+- Text.WorkingCopy.ClearCommitHistories.Confirm
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
- Text.WorkingCopy.ConfirmCommitWithFilter
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
@@ -188,140 +209,19 @@ This document shows the translation status of each locale file in the repository
-### 
+### 
Missing keys in it_IT.axaml
-- Text.AddToIgnore
-- Text.AddToIgnore.Pattern
-- Text.AddToIgnore.Storage
-- Text.App.Hide
-- Text.App.ShowAll
-- Text.Askpass.Passphrase
-- Text.Avatar.Load
-- Text.BranchCM.ResetToSelectedCommit
-- Text.BranchTree.InvalidUpstream
-- Text.BranchTree.Remote
-- Text.BranchTree.Tracking
-- Text.BranchTree.URL
-- Text.ChangeSubmoduleUrl
-- Text.ChangeSubmoduleUrl.Submodule
-- Text.ChangeSubmoduleUrl.URL
-- Text.Checkout.WarnLostCommits
-- Text.Checkout.WithFastForward
-- Text.Checkout.WithFastForward.Upstream
-- Text.CommitCM.CopyCommitMessage
-- Text.CommitCM.InteractiveRebase
-- Text.CommitCM.InteractiveRebase.Drop
-- Text.CommitCM.InteractiveRebase.Edit
-- Text.CommitCM.InteractiveRebase.Fixup
-- Text.CommitCM.InteractiveRebase.Manually
-- Text.CommitCM.InteractiveRebase.Reword
-- Text.CommitCM.InteractiveRebase.Squash
-- Text.CommitCM.PushRevision
-- Text.CommitCM.Rebase
-- Text.CommitCM.Reset
-- Text.CommitDetail.Changes.Count
-- Text.CommitDetail.Info.Key
-- Text.CommitDetail.Info.Signer
-- Text.Configure.CommitMessageTemplate.BuiltinVars
-- Text.Configure.CustomAction.Arguments.Tip
-- Text.Configure.CustomAction.InputControls
-- Text.Configure.CustomAction.InputControls.Edit
-- Text.Configure.CustomAction.Scope.Remote
-- Text.Configure.CustomAction.Scope.Tag
-- Text.Configure.IssueTracker.AddSampleGerritChangeIdCommit
-- Text.Configure.IssueTracker.Share
-- Text.ConfigureCustomActionControls
-- Text.ConfigureCustomActionControls.CheckedValue
-- Text.ConfigureCustomActionControls.CheckedValue.Tip
-- Text.ConfigureCustomActionControls.Description
-- Text.ConfigureCustomActionControls.DefaultValue
-- Text.ConfigureCustomActionControls.IsFolder
-- Text.ConfigureCustomActionControls.Label
-- Text.ConfigureCustomActionControls.Options
-- Text.ConfigureCustomActionControls.Options.Tip
-- Text.ConfigureCustomActionControls.Type
-- Text.ConfirmRestart.Title
-- Text.ConfirmRestart.Message
-- Text.CreateBranch.OverwriteExisting
-- Text.DeinitSubmodule
-- Text.DeinitSubmodule.Force
-- Text.DeinitSubmodule.Path
-- Text.DeleteMultiTags
-- Text.DeleteMultiTags.DeleteFromRemotes
-- Text.DeleteMultiTags.Tip
-- Text.Diff.Image.Blend
-- Text.Diff.Image.SideBySide
-- Text.Diff.Image.Swipe
-- Text.Diff.New
-- Text.Diff.Old
-- Text.Diff.Submodule.Deleted
-- Text.DirHistories
-- Text.Discard.IncludeUntracked
-- Text.ExecuteCustomAction.Target
-- Text.ExecuteCustomAction.Repository
-- Text.Hotkeys.Global.SwitchWorkspace
-- Text.Hotkeys.Global.SwitchTab
-- Text.InteractiveRebase.ReorderTip
-- Text.Launcher.Workspaces
-- Text.Launcher.Pages
-- Text.Merge.Edit
-- Text.MoveSubmodule
-- Text.MoveSubmodule.MoveTo
-- Text.MoveSubmodule.Submodule
-- Text.Preferences.Appearance.EnableCompactFolders
-- Text.Preferences.Git.UseLibsecret
-- Text.Pull.RecurseSubmodules
-- Text.Push.New
-- Text.Push.Revision
-- Text.Push.Revision.Title
-- Text.RemoteCM.CustomAction
-- Text.Repository.ClearStashes
-- Text.Repository.Dashboard
-- Text.Repository.MoreOptions
-- Text.Repository.OnlyHighlightCurrentBranchInGraph
-- Text.Repository.Search.ByPath
-- Text.Repository.ShowDecoratedCommitsOnly
-- Text.Repository.ShowFirstParentOnly
-- Text.Repository.ShowFlags
-- Text.Repository.ShowLostCommits
-- Text.Repository.UseRelativeTimeInGraph
-- Text.ResetWithoutCheckout
-- Text.ResetWithoutCheckout.MoveTo
-- Text.ResetWithoutCheckout.Target
-- Text.SetSubmoduleBranch
-- Text.SetSubmoduleBranch.Submodule
-- Text.SetSubmoduleBranch.Current
-- Text.SetSubmoduleBranch.New
-- Text.SetSubmoduleBranch.New.Tip
-- Text.Stash.Mode
-- Text.StashCM.CopyMessage
-- Text.Submodule.Branch
-- Text.Submodule.CopyBranch
-- Text.Submodule.Deinit
-- Text.Submodule.Histories
-- Text.Submodule.Move
-- Text.Submodule.SetBranch
-- Text.Submodule.SetURL
-- Text.Submodule.Update
-- Text.Tag.Tagger
-- Text.Tag.Time
-- Text.TagCM.Copy.Message
-- Text.TagCM.Copy.Name
-- Text.TagCM.Copy.Tagger
-- Text.TagCM.CopyName
-- Text.TagCM.CustomAction
-- Text.TagCM.DeleteMultiple
-- Text.UpdateSubmodules.UpdateToRemoteTrackingBranch
-- Text.WorkingCopy.AddToGitIgnore.InFolder
-- Text.WorkingCopy.ConfirmCommitWithDetachedHead
-- Text.WorkingCopy.ResetAuthor
+- Text.Preferences.General.EnableCompactFolders
+- Text.Preferences.General.ShowChangesPageByDefault
+- Text.WorkingCopy.ClearCommitHistories
+- Text.WorkingCopy.ClearCommitHistories.Confirm
-### 
+### 
Missing keys in ja_JP.axaml
@@ -425,7 +325,8 @@ This document shows the translation status of each locale file in the repository
- Text.MoveSubmodule
- Text.MoveSubmodule.MoveTo
- Text.MoveSubmodule.Submodule
-- Text.Preferences.Appearance.EnableCompactFolders
+- Text.Preferences.General.EnableCompactFolders
+- Text.Preferences.General.ShowChangesPageByDefault
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
- Text.Preferences.Git.UseLibsecret
- Text.Pull.RecurseSubmodules
@@ -489,6 +390,8 @@ This document shows the translation status of each locale file in the repository
- Text.ViewLogs.CopyLog
- Text.ViewLogs.Delete
- Text.WorkingCopy.AddToGitIgnore.InFolder
+- Text.WorkingCopy.ClearCommitHistories
+- Text.WorkingCopy.ClearCommitHistories.Confirm
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
- Text.WorkingCopy.ConfirmCommitWithFilter
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
@@ -499,7 +402,7 @@ This document shows the translation status of each locale file in the repository
-### 
+### 
Missing keys in pt_BR.axaml
@@ -610,7 +513,6 @@ This document shows the translation status of each locale file in the repository
- Text.Diff.New
- Text.Diff.Old
- Text.Diff.Submodule.Deleted
-- Text.Diff.UseBlockNavigation
- Text.DirHistories
- Text.Discard.IncludeUntracked
- Text.ExecuteCustomAction.Target
@@ -641,8 +543,9 @@ This document shows the translation status of each locale file in the repository
- Text.MoveSubmodule.Submodule
- Text.Preferences.AI.Streaming
- Text.Preferences.Appearance.EditorTabWidth
-- Text.Preferences.Appearance.EnableCompactFolders
- Text.Preferences.General.DateFormat
+- Text.Preferences.General.EnableCompactFolders
+- Text.Preferences.General.ShowChangesPageByDefault
- Text.Preferences.General.ShowChildren
- Text.Preferences.General.ShowTagsInGraph
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
@@ -724,6 +627,8 @@ This document shows the translation status of each locale file in the repository
- Text.ViewLogs.CopyLog
- Text.ViewLogs.Delete
- Text.WorkingCopy.AddToGitIgnore.InFolder
+- Text.WorkingCopy.ClearCommitHistories
+- Text.WorkingCopy.ClearCommitHistories.Confirm
- Text.WorkingCopy.CommitToEdit
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
- Text.WorkingCopy.ConfirmCommitWithFilter
@@ -736,18 +641,9 @@ This document shows the translation status of each locale file in the repository
-### 
+### 
-
-Missing keys in ru_RU.axaml
-
-- Text.App.Hide
-- Text.App.ShowAll
-- Text.Configure.CustomAction.Arguments.Tip
-
-
-
-### 
+### 
Missing keys in ta_IN.axaml
@@ -851,7 +747,8 @@ This document shows the translation status of each locale file in the repository
- Text.MoveSubmodule
- Text.MoveSubmodule.MoveTo
- Text.MoveSubmodule.Submodule
-- Text.Preferences.Appearance.EnableCompactFolders
+- Text.Preferences.General.EnableCompactFolders
+- Text.Preferences.General.ShowChangesPageByDefault
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
- Text.Preferences.Git.UseLibsecret
- Text.Pull.RecurseSubmodules
@@ -915,6 +812,8 @@ This document shows the translation status of each locale file in the repository
- Text.ViewLogs.CopyLog
- Text.ViewLogs.Delete
- Text.WorkingCopy.AddToGitIgnore.InFolder
+- Text.WorkingCopy.ClearCommitHistories
+- Text.WorkingCopy.ClearCommitHistories.Confirm
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
- Text.WorkingCopy.Conflicts.OpenExternalMergeTool
- Text.WorkingCopy.Conflicts.OpenExternalMergeToolAllConflicts
@@ -924,7 +823,7 @@ This document shows the translation status of each locale file in the repository
-### 
+### 
Missing keys in uk_UA.axaml
@@ -1023,7 +922,8 @@ This document shows the translation status of each locale file in the repository
- Text.MoveSubmodule
- Text.MoveSubmodule.MoveTo
- Text.MoveSubmodule.Submodule
-- Text.Preferences.Appearance.EnableCompactFolders
+- Text.Preferences.General.EnableCompactFolders
+- Text.Preferences.General.ShowChangesPageByDefault
- Text.Preferences.Git.IgnoreCRAtEOLInDiff
- Text.Preferences.Git.UseLibsecret
- Text.Pull.RecurseSubmodules
@@ -1086,6 +986,8 @@ This document shows the translation status of each locale file in the repository
- Text.ViewLogs.CopyLog
- Text.ViewLogs.Delete
- Text.WorkingCopy.AddToGitIgnore.InFolder
+- Text.WorkingCopy.ClearCommitHistories
+- Text.WorkingCopy.ClearCommitHistories.Confirm
- Text.WorkingCopy.ConfirmCommitWithDetachedHead
- Text.WorkingCopy.ResetAuthor
diff --git a/VERSION b/VERSION
index 15488365..ce37c75f 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2025.31
\ No newline at end of file
+2025.32
\ No newline at end of file
diff --git a/build/resources/rpm/SPECS/build.spec b/build/resources/rpm/SPECS/build.spec
index 2a684837..669fdf84 100644
--- a/build/resources/rpm/SPECS/build.spec
+++ b/build/resources/rpm/SPECS/build.spec
@@ -20,10 +20,10 @@ mkdir -p %{buildroot}/opt/sourcegit
mkdir -p %{buildroot}/%{_bindir}
mkdir -p %{buildroot}/usr/share/applications
mkdir -p %{buildroot}/usr/share/icons
-cp -f ../../../SourceGit/* %{buildroot}/opt/sourcegit/
+cp -f %{_topdir}/../../SourceGit/* %{buildroot}/opt/sourcegit/
ln -rsf %{buildroot}/opt/sourcegit/sourcegit %{buildroot}/%{_bindir}
-cp -r ../../_common/applications %{buildroot}/%{_datadir}
-cp -r ../../_common/icons %{buildroot}/%{_datadir}
+cp -r %{_topdir}/../_common/applications %{buildroot}/%{_datadir}
+cp -r %{_topdir}/../_common/icons %{buildroot}/%{_datadir}
chmod 755 -R %{buildroot}/opt/sourcegit
chmod 755 %{buildroot}/%{_datadir}/applications/sourcegit.desktop
diff --git a/src/App.axaml.cs b/src/App.axaml.cs
index b23c2626..1f8ff590 100644
--- a/src/App.axaml.cs
+++ b/src/App.axaml.cs
@@ -608,10 +608,10 @@ namespace SourceGit
try
{
// Fetch latest release information.
- using var client = new HttpClient() { Timeout = TimeSpan.FromSeconds(5) };
- var data = await client.GetStringAsync("https://sourcegit-scm.github.io/data/version.json");
+ using var client = new HttpClient();
+ client.Timeout = TimeSpan.FromSeconds(5);
- // Parse JSON into Models.Version.
+ var data = await client.GetStringAsync("https://sourcegit-scm.github.io/data/version.json");
var ver = JsonSerializer.Deserialize(data, JsonCodeGen.Default.Version);
if (ver == null)
return;
diff --git a/src/Commands/Command.cs b/src/Commands/Command.cs
index 44b651b2..0996a030 100644
--- a/src/Commands/Command.cs
+++ b/src/Commands/Command.cs
@@ -48,8 +48,8 @@ namespace SourceGit.Commands
proc.OutputDataReceived += (_, e) => HandleOutput(e.Data, errs);
proc.ErrorDataReceived += (_, e) => HandleOutput(e.Data, errs);
- Process dummy = null;
- var dummyProcLock = new object();
+ var captured = new CapturedProcess() { Process = proc };
+ var capturedLock = new object();
try
{
proc.Start();
@@ -57,13 +57,12 @@ namespace SourceGit.Commands
// Not safe, please only use `CancellationToken` in readonly commands.
if (CancellationToken.CanBeCanceled)
{
- dummy = proc;
CancellationToken.Register(() =>
{
- lock (dummyProcLock)
+ lock (capturedLock)
{
- if (dummy is { HasExited: false })
- dummy.Kill();
+ if (captured is { Process: { HasExited: false } })
+ captured.Process.Kill();
}
});
}
@@ -89,12 +88,9 @@ namespace SourceGit.Commands
HandleOutput(e.Message, errs);
}
- if (dummy != null)
+ lock (capturedLock)
{
- lock (dummyProcLock)
- {
- dummy = null;
- }
+ captured.Process = null;
}
Log?.AppendLine(string.Empty);
@@ -116,7 +112,8 @@ namespace SourceGit.Commands
protected Result ReadToEnd()
{
- using var proc = new Process() { StartInfo = CreateGitStartInfo(true) };
+ using var proc = new Process();
+ proc.StartInfo = CreateGitStartInfo(true);
try
{
@@ -138,7 +135,8 @@ namespace SourceGit.Commands
protected async Task ReadToEndAsync()
{
- using var proc = new Process() { StartInfo = CreateGitStartInfo(true) };
+ using var proc = new Process();
+ proc.StartInfo = CreateGitStartInfo(true);
try
{
@@ -245,6 +243,11 @@ namespace SourceGit.Commands
errs.Add(line);
}
+ private class CapturedProcess
+ {
+ public Process Process { get; set; } = null;
+ }
+
[GeneratedRegex(@"\d+%")]
private static partial Regex REG_PROGRESS();
}
diff --git a/src/Commands/Commit.cs b/src/Commands/Commit.cs
index 41d650f7..1ec5edf6 100644
--- a/src/Commands/Commit.cs
+++ b/src/Commands/Commit.cs
@@ -34,7 +34,7 @@ namespace SourceGit.Commands
}
}
- private readonly string _tmpFile = string.Empty;
- private readonly string _message = string.Empty;
+ private readonly string _tmpFile;
+ private readonly string _message;
}
}
diff --git a/src/Commands/Diff.cs b/src/Commands/Diff.cs
index 3eae1b54..ee5433ac 100644
--- a/src/Commands/Diff.cs
+++ b/src/Commands/Diff.cs
@@ -20,11 +20,7 @@ namespace SourceGit.Commands
public Diff(string repo, Models.DiffOption opt, int unified, bool ignoreWhitespace)
{
- _result.TextDiff = new Models.TextDiff()
- {
- Repo = repo,
- Option = opt,
- };
+ _result.TextDiff = new Models.TextDiff() { Option = opt };
WorkingDirectory = repo;
Context = repo;
diff --git a/src/Commands/QueryBranches.cs b/src/Commands/QueryBranches.cs
index 9d89407f..384c5cba 100644
--- a/src/Commands/QueryBranches.cs
+++ b/src/Commands/QueryBranches.cs
@@ -94,8 +94,7 @@ namespace SourceGit.Commands
branch.IsLocal = true;
}
- ulong committerDate = 0;
- ulong.TryParse(parts[1], out committerDate);
+ ulong.TryParse(parts[1], out var committerDate);
branch.FullName = refName;
branch.CommitterDate = committerDate;
diff --git a/src/Commands/QueryFileContent.cs b/src/Commands/QueryFileContent.cs
index 41cf6383..66f96460 100644
--- a/src/Commands/QueryFileContent.cs
+++ b/src/Commands/QueryFileContent.cs
@@ -21,7 +21,7 @@ namespace SourceGit.Commands
var stream = new MemoryStream();
try
{
- using var proc = Process.Start(starter);
+ using var proc = Process.Start(starter)!;
await proc.StandardOutput.BaseStream.CopyToAsync(stream).ConfigureAwait(false);
await proc.WaitForExitAsync().ConfigureAwait(false);
}
@@ -49,7 +49,7 @@ namespace SourceGit.Commands
var stream = new MemoryStream();
try
{
- using var proc = Process.Start(starter);
+ using var proc = Process.Start(starter)!;
await proc.StandardInput.WriteLineAsync("version https://git-lfs.github.com/spec/v1").ConfigureAwait(false);
await proc.StandardInput.WriteLineAsync($"oid sha256:{oid}").ConfigureAwait(false);
await proc.StandardInput.WriteLineAsync($"size {size}").ConfigureAwait(false);
diff --git a/src/Commands/QueryGitDir.cs b/src/Commands/QueryGitDir.cs
index 6bca314d..5a91b217 100644
--- a/src/Commands/QueryGitDir.cs
+++ b/src/Commands/QueryGitDir.cs
@@ -1,5 +1,4 @@
using System.IO;
-using System.Threading.Tasks;
namespace SourceGit.Commands
{
@@ -16,12 +15,6 @@ namespace SourceGit.Commands
return Parse(ReadToEnd());
}
- public async Task GetResultAsync()
- {
- var rs = await ReadToEndAsync().ConfigureAwait(false);
- return Parse(rs);
- }
-
private string Parse(Result rs)
{
if (!rs.IsSuccess)
diff --git a/src/Commands/QueryTags.cs b/src/Commands/QueryTags.cs
index 1ca3bff1..8718542e 100644
--- a/src/Commands/QueryTags.cs
+++ b/src/Commands/QueryTags.cs
@@ -34,8 +34,7 @@ namespace SourceGit.Commands
if (!string.IsNullOrEmpty(message) && message.Equals(name, StringComparison.Ordinal))
message = null;
- ulong creactorDate = 0;
- ulong.TryParse(subs[5], out creactorDate);
+ ulong.TryParse(subs[5], out var creatorDate);
tags.Add(new Models.Tag()
{
@@ -43,7 +42,7 @@ namespace SourceGit.Commands
IsAnnotated = subs[1].Equals("tag", StringComparison.Ordinal),
SHA = string.IsNullOrEmpty(subs[3]) ? subs[2] : subs[3],
Creator = Models.User.FindOrAdd(subs[4]),
- CreatorDate = creactorDate,
+ CreatorDate = creatorDate,
Message = message,
});
}
diff --git a/src/Commands/SaveChangesAsPatch.cs b/src/Commands/SaveChangesAsPatch.cs
index c86fc0e0..4352319a 100644
--- a/src/Commands/SaveChangesAsPatch.cs
+++ b/src/Commands/SaveChangesAsPatch.cs
@@ -62,7 +62,7 @@ namespace SourceGit.Commands
try
{
- using var proc = Process.Start(starter);
+ using var proc = Process.Start(starter)!;
await proc.StandardOutput.BaseStream.CopyToAsync(writer).ConfigureAwait(false);
await proc.WaitForExitAsync().ConfigureAwait(false);
return proc.ExitCode == 0;
diff --git a/src/Commands/SaveRevisionFile.cs b/src/Commands/SaveRevisionFile.cs
index a3ca373f..e05d6d35 100644
--- a/src/Commands/SaveRevisionFile.cs
+++ b/src/Commands/SaveRevisionFile.cs
@@ -9,7 +9,7 @@ namespace SourceGit.Commands
{
public static async Task RunAsync(string repo, string revision, string file, string saveTo)
{
- var dir = Path.GetDirectoryName(saveTo);
+ var dir = Path.GetDirectoryName(saveTo) ?? string.Empty;
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
@@ -42,7 +42,7 @@ namespace SourceGit.Commands
{
try
{
- using var proc = Process.Start(starter);
+ using var proc = Process.Start(starter)!;
if (input != null)
{
diff --git a/src/Commands/UnstageChangesForAmend.cs b/src/Commands/UnstageChangesForAmend.cs
index 0b2b7e47..9170306a 100644
--- a/src/Commands/UnstageChangesForAmend.cs
+++ b/src/Commands/UnstageChangesForAmend.cs
@@ -63,7 +63,7 @@ namespace SourceGit.Commands
try
{
- using var proc = Process.Start(starter);
+ using var proc = Process.Start(starter)!;
await proc.StandardInput.WriteAsync(_patchBuilder.ToString());
proc.StandardInput.Close();
@@ -83,7 +83,7 @@ namespace SourceGit.Commands
}
}
- private string _repo = "";
- private StringBuilder _patchBuilder = new StringBuilder();
+ private readonly string _repo;
+ private readonly StringBuilder _patchBuilder = new();
}
}
diff --git a/src/Converters/ListConverters.cs b/src/Converters/ListConverters.cs
index 6f3ae98b..e0c5967e 100644
--- a/src/Converters/ListConverters.cs
+++ b/src/Converters/ListConverters.cs
@@ -7,9 +7,6 @@ namespace SourceGit.Converters
{
public static class ListConverters
{
- public static readonly FuncValueConverter Count =
- new FuncValueConverter(v => v == null ? "0" : $"{v.Count}");
-
public static readonly FuncValueConverter ToCount =
new FuncValueConverter(v => v == null ? "(0)" : $"({v.Count})");
diff --git a/src/Models/AvatarManager.cs b/src/Models/AvatarManager.cs
index 86181a9b..cf4eb3e3 100644
--- a/src/Models/AvatarManager.cs
+++ b/src/Models/AvatarManager.cs
@@ -190,9 +190,6 @@ namespace SourceGit.Models
image = Bitmap.DecodeToWidth(stream, 128);
}
- if (image == null)
- return;
-
_resources[email] = image;
lock (_synclock)
diff --git a/src/Models/CommitGraph.cs b/src/Models/CommitGraph.cs
index cb569610..9f0f0075 100644
--- a/src/Models/CommitGraph.cs
+++ b/src/Models/CommitGraph.cs
@@ -6,12 +6,7 @@ using Avalonia.Media;
namespace SourceGit.Models
{
- public record CommitGraphLayout(double startY, double clipWidth, double rowHeight)
- {
- public double StartY { get; set; } = startY;
- public double ClipWidth { get; set; } = clipWidth;
- public double RowHeight { get; set; } = rowHeight;
- }
+ public record CommitGraphLayout(double StartY, double ClipWidth, double RowHeight);
public class CommitGraph
{
diff --git a/src/Models/CommitLink.cs b/src/Models/CommitLink.cs
index 4d8e22a2..d9f1bb05 100644
--- a/src/Models/CommitLink.cs
+++ b/src/Models/CommitLink.cs
@@ -5,8 +5,8 @@ namespace SourceGit.Models
{
public class CommitLink
{
- public string Name { get; set; } = null;
- public string URLPrefix { get; set; } = null;
+ public string Name { get; } = null;
+ public string URLPrefix { get; } = null;
public CommitLink(string name, string prefix)
{
diff --git a/src/Models/DiffResult.cs b/src/Models/DiffResult.cs
index d80fa136..ec2da947 100644
--- a/src/Models/DiffResult.cs
+++ b/src/Models/DiffResult.cs
@@ -1,8 +1,6 @@
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
-
-using Avalonia;
using Avalonia.Media.Imaging;
namespace SourceGit.Models
@@ -62,12 +60,9 @@ namespace SourceGit.Models
public partial class TextDiff
{
public string File { get; set; } = string.Empty;
- public List Lines { get; set; } = new List();
- public Vector ScrollOffset { get; set; } = Vector.Zero;
- public int MaxLineNumber = 0;
-
- public string Repo { get; set; } = null;
public DiffOption Option { get; set; } = null;
+ public List Lines { get; set; } = new List();
+ public int MaxLineNumber = 0;
public TextDiffSelection MakeSelection(int startLine, int endLine, bool isCombined, bool isOldSide)
{
@@ -148,7 +143,8 @@ namespace SourceGit.Models
var isTracked = !string.IsNullOrEmpty(fileBlobGuid);
var fileGuid = isTracked ? fileBlobGuid : "00000000";
- using var writer = new StreamWriter(output) { NewLine = "\n" };
+ using var writer = new StreamWriter(output);
+ writer.NewLine = "\n";
writer.WriteLine($"diff --git a/{change.Path} b/{change.Path}");
if (!revert && !isTracked)
writer.WriteLine("new file mode 100644");
@@ -192,7 +188,8 @@ namespace SourceGit.Models
{
var orgFile = !string.IsNullOrEmpty(change.OriginalPath) ? change.OriginalPath : change.Path;
- using var writer = new StreamWriter(output) { NewLine = "\n" };
+ using var writer = new StreamWriter(output);
+ writer.NewLine = "\n";
writer.WriteLine($"diff --git a/{change.Path} b/{change.Path}");
writer.WriteLine($"index 00000000...{fileTreeGuid} 100644");
writer.WriteLine($"--- a/{orgFile}");
@@ -305,7 +302,8 @@ namespace SourceGit.Models
{
var orgFile = !string.IsNullOrEmpty(change.OriginalPath) ? change.OriginalPath : change.Path;
- using var writer = new StreamWriter(output) { NewLine = "\n" };
+ using var writer = new StreamWriter(output);
+ writer.NewLine = "\n";
writer.WriteLine($"diff --git a/{change.Path} b/{change.Path}");
writer.WriteLine($"index 00000000...{fileTreeGuid} 100644");
writer.WriteLine($"--- a/{orgFile}");
diff --git a/src/Models/IpcChannel.cs b/src/Models/IpcChannel.cs
index 001c65a6..702f0630 100644
--- a/src/Models/IpcChannel.cs
+++ b/src/Models/IpcChannel.cs
@@ -80,7 +80,7 @@ namespace SourceGit.Models
if (!_cancellationTokenSource.IsCancellationRequested)
{
var line = await reader.ReadToEndAsync(_cancellationTokenSource.Token);
- MessageReceived?.Invoke(line?.Trim());
+ MessageReceived?.Invoke(line.Trim());
}
_server.Disconnect();
diff --git a/src/Models/NumericSort.cs b/src/Models/NumericSort.cs
index baaf3da4..433a921b 100644
--- a/src/Models/NumericSort.cs
+++ b/src/Models/NumericSort.cs
@@ -6,6 +6,8 @@ namespace SourceGit.Models
{
public static int Compare(string s1, string s2)
{
+ var comparer = StringComparer.InvariantCultureIgnoreCase;
+
int len1 = s1.Length;
int len2 = s2.Length;
@@ -20,7 +22,7 @@ namespace SourceGit.Models
bool isDigit1 = char.IsDigit(c1);
bool isDigit2 = char.IsDigit(c2);
if (isDigit1 != isDigit2)
- return c1.CompareTo(c2);
+ return comparer.Compare(c1.ToString(), c2.ToString());
int subLen1 = 1;
while (marker1 + subLen1 < len1 && char.IsDigit(s1[marker1 + subLen1]) == isDigit1)
@@ -40,7 +42,7 @@ namespace SourceGit.Models
if (isDigit1)
result = (subLen1 == subLen2) ? string.CompareOrdinal(sub1, sub2) : (subLen1 - subLen2);
else
- result = string.Compare(sub1, sub2, StringComparison.OrdinalIgnoreCase);
+ result = comparer.Compare(sub1, sub2);
if (result != 0)
return result;
diff --git a/src/Models/TemplateEngine.cs b/src/Models/TemplateEngine.cs
index 87822fb1..fc462918 100644
--- a/src/Models/TemplateEngine.cs
+++ b/src/Models/TemplateEngine.cs
@@ -285,7 +285,7 @@ namespace SourceGit.Models
switch (c)
{
case ESCAPE:
- // allow to escape only }
+ // allow to escape only right-brace
if (Peek() == VARIABLE_END)
{
esc = true;
diff --git a/src/Models/Watcher.cs b/src/Models/Watcher.cs
index 23980399..119a1fea 100644
--- a/src/Models/Watcher.cs
+++ b/src/Models/Watcher.cs
@@ -82,19 +82,19 @@ namespace SourceGit.Models
}
}
- public void MarkBranchDirtyManually()
+ public void MarkBranchUpdated()
{
- _updateBranch = DateTime.Now.ToFileTime() - 1;
+ _updateBranch = 0;
}
- public void MarkTagDirtyManually()
+ public void MarkTagUpdated()
{
- _updateTags = DateTime.Now.ToFileTime() - 1;
+ _updateTags = 0;
}
- public void MarkWorkingCopyDirtyManually()
+ public void MarkWorkingCopyUpdated()
{
- _updateWC = DateTime.Now.ToFileTime() - 1;
+ _updateWC = 0;
}
public void Dispose()
diff --git a/src/Native/OS.cs b/src/Native/OS.cs
index f991bca7..1798933c 100644
--- a/src/Native/OS.cs
+++ b/src/Native/OS.cs
@@ -110,7 +110,7 @@ namespace SourceGit.Native
}
else
{
- throw new Exception("Platform unsupported!!!");
+ throw new PlatformNotSupportedException();
}
}
@@ -124,7 +124,7 @@ namespace SourceGit.Native
if (OperatingSystem.IsWindows())
{
var execFile = Process.GetCurrentProcess().MainModule!.FileName;
- var portableDir = Path.Combine(Path.GetDirectoryName(execFile), "data");
+ var portableDir = Path.Combine(Path.GetDirectoryName(execFile)!, "data");
if (Directory.Exists(portableDir))
{
DataDir = portableDir;
@@ -250,7 +250,7 @@ namespace SourceGit.Native
try
{
- using var proc = Process.Start(start);
+ using var proc = Process.Start(start)!;
var rs = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
if (proc.ExitCode == 0 && !string.IsNullOrWhiteSpace(rs))
diff --git a/src/Native/Windows.cs b/src/Native/Windows.cs
index d8b7286e..d00100eb 100644
--- a/src/Native/Windows.cs
+++ b/src/Native/Windows.cs
@@ -17,6 +17,7 @@ namespace SourceGit.Native
[SupportedOSPlatform("windows")]
internal class Windows : OS.IBackend
{
+ [StructLayout(LayoutKind.Sequential)]
internal struct RECT
{
public int left;
@@ -393,7 +394,7 @@ namespace SourceGit.Native
try
{
- using var proc = Process.Start(startInfo);
+ using var proc = Process.Start(startInfo)!;
var output = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
diff --git a/src/Resources/Icons.axaml b/src/Resources/Icons.axaml
index bc2b4296..a8eec1db 100644
--- a/src/Resources/Icons.axaml
+++ b/src/Resources/Icons.axaml
@@ -21,7 +21,6 @@
M1280 704c0 141-115 256-256 256H288C129 960 0 831 0 672c0-126 80-232 192-272A327 327 0 01192 384c0-177 143-320 320-320 119 0 222 64 277 160C820 204 857 192 896 192c106 0 192 86 192 192 0 24-5 48-13 69C1192 477 1280 580 1280 704zm-493-128H656V352c0-18-14-32-32-32h-96c-18 0-32 14-32 32v224h-131c-29 0-43 34-23 55l211 211c12 12 33 12 45 0l211-211c20-20 6-55-23-55z
M523 398 918 3l113 113-396 396 397 397-113 113-397-397-397 397-113-113 397-397L14 116l113-113 396 396z
M853 102H171C133 102 102 133 102 171v683C102 891 133 922 171 922h683C891 922 922 891 922 853V171C922 133 891 102 853 102zM390 600l-48 48L205 512l137-137 48 48L301 512l88 88zM465 819l-66-18L559 205l66 18L465 819zm218-171L634 600 723 512l-88-88 48-48L819 512 683 649z
- M684 736 340 736l0-53 344 1-0 53zM552 565l-213-2 0-53 212 2-0 53zM684 392 340 392l0-53 344 1-0 53zM301 825c-45 0-78-9-100-27-22-18-33-43-33-75v-116c0-22-4-37-12-45-7-9-20-13-40-13v-61c19 0 32-4 40-12 8-9 12-24 12-46v-116c0-32 11-57 33-75 22-18 56-27 100-27h24v61h-24a35 35 0 00-27 12 41 41 0 00-11 29v116c0 35-10 60-31 75a66 66 0 01-31 14c11 2 22 6 31 14 20 17 31 42 31 75v116c0 12 4 22 11 29 7 8 16 12 27 12h24v61h-24zM701 764h24c10 0 19-4 27-12a41 41 0 0011-29v-116c0-33 10-58 31-75 9-7 19-12 31-14a66 66 0 01-31-14c-20-15-31-40-31-75v-116a41 41 0 00-11-29 35 35 0 00-27-12h-24v-61h24c45 0 78 9 100 27 22 18 33 43 33 75v116c0 22 4 37 11 46 8 8 21 12 40 12v61c-19 0-33 4-40 13-7 8-11 23-11 45v116c0 32-11 57-33 75-22 18-55 27-100 27h-24v-61z
M128 854h768v86H128zM390 797c13 13 29 19 48 19s35-6 45-19l291-288c26-22 26-64 0-90L435 83l-61 61L426 192l-272 269c-22 22-22 64 0 90l237 246zm93-544 211 211-32 32H240l243-243zM707 694c0 48 38 86 86 86 48 0 86-38 86-86 0-22-10-45-26-61L794 576l-61 61c-13 13-26 35-26 58z
M0 512M1024 512M512 0M512 1024M796 471A292 292 0 00512 256a293 293 0 00-284 215H0v144h228A293 293 0 00512 832a291 291 0 00284-217H1024V471h-228M512 688A146 146 0 01366 544A145 145 0 01512 400c80 0 146 63 146 144A146 146 0 01512 688
M796 561a5 5 0 014 7l-39 90a5 5 0 004 7h100a5 5 0 014 8l-178 247a5 5 0 01-9-4l32-148a5 5 0 00-5-6h-89a5 5 0 01-4-7l86-191a5 5 0 014-3h88zM731 122a73 73 0 0173 73v318a54 54 0 00-8-1H731V195H244v634h408l-16 73H244a73 73 0 01-73-73V195a73 73 0 0173-73h488zm-219 366v73h-195v-73h195zm146-146v73H317v-73h341z
diff --git a/src/Resources/Locales/de_DE.axaml b/src/Resources/Locales/de_DE.axaml
index 689567a1..6f5f9414 100644
--- a/src/Resources/Locales/de_DE.axaml
+++ b/src/Resources/Locales/de_DE.axaml
@@ -333,7 +333,6 @@
Seiten wechseln
Syntax Hervorhebung
Zeilenumbruch
- Aktiviere Block-Navigation
Öffne in Merge Tool
Alle Zeilen anzeigen
Weniger Zeilen anzeigen
@@ -541,7 +540,6 @@
DARSTELLUNG
Standardschriftart
Editor Tab Breite
- Aktiviere kompakte Ordner im Änderungsbaum
Schriftgröße
Standard
Texteditor
@@ -558,6 +556,7 @@
ALLGEMEIN
Beim Starten nach Updates suchen
Datumsformat
+ Aktiviere kompakte Ordner im Änderungsbaum
Sprache
Commit-Historie
Zeige Autor Zeitpunkt anstatt Commit Zeitpunkt
diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml
index 794ecab6..562fb190 100644
--- a/src/Resources/Locales/en_US.axaml
+++ b/src/Resources/Locales/en_US.axaml
@@ -328,7 +328,6 @@
Swap
Syntax Highlighting
Line Word Wrap
- Enable Block-Navigation
Open in Merge Tool
Show All Lines
Decrease Number of Visible Lines
@@ -536,7 +535,6 @@
APPEARANCE
Default Font
Editor Tab Width
- Enable compact folders in changes tree
Font Size
Default
Editor
@@ -553,9 +551,11 @@
GENERAL
Check for updates on startup
Date Format
+ Enable compact folders in changes tree
Language
History Commits
Show author time instead of commit time in graph
+ Show `LOCAL CHANGES` page by default
Show children in the commit details
Show tags in commit graph
Subject Guide Length
@@ -839,6 +839,8 @@
Ignore this file only
Amend
You can stage this file now.
+ Clear History
+ Are you sure you want to clear all commit message history? This action cannot be undone.
COMMIT
COMMIT & PUSH
Template/History
diff --git a/src/Resources/Locales/es_ES.axaml b/src/Resources/Locales/es_ES.axaml
index 71cd212d..1db8d2a6 100644
--- a/src/Resources/Locales/es_ES.axaml
+++ b/src/Resources/Locales/es_ES.axaml
@@ -332,7 +332,6 @@
Intercambiar
Resaltado de Sintaxis
Ajuste de Línea
- Habilitar navegación en bloque
Abrir en Herramienta de Merge
Mostrar Todas las Líneas
Disminuir Número de Líneas Visibles
@@ -540,7 +539,6 @@
APARIENCIA
Fuente por defecto
Ancho de la Pestaña del Editor
- Habilitar carpetas compactas en el árbol de cambios
Tamaño de fuente
Por defecto
Editor
@@ -557,6 +555,7 @@
GENERAL
Buscar actualizaciones al iniciar
Formato de Fecha
+ Habilitar carpetas compactas en el árbol de cambios
Idioma
Commits en el historial
Mostrar hora del autor en lugar de la hora del commit en el gráfico
diff --git a/src/Resources/Locales/fr_FR.axaml b/src/Resources/Locales/fr_FR.axaml
index 7359db96..39297041 100644
--- a/src/Resources/Locales/fr_FR.axaml
+++ b/src/Resources/Locales/fr_FR.axaml
@@ -242,7 +242,6 @@
Permuter
Coloration syntaxique
Retour à la ligne
- Activer la navigation par blocs
Ouvrir dans l'outil de fusion
Voir toutes les lignes
Réduit le nombre de ligne visibles
diff --git a/src/Resources/Locales/it_IT.axaml b/src/Resources/Locales/it_IT.axaml
index 731fb267..dca05509 100644
--- a/src/Resources/Locales/it_IT.axaml
+++ b/src/Resources/Locales/it_IT.axaml
@@ -6,6 +6,9 @@
Informazioni
Informazioni su SourceGit
Client GUI Git open source e gratuito
+ Aggiungi file a Ignora
+ Pattern:
+ File di storage:
Aggiungi Worktree
Posizione:
Percorso per questo worktree. Supportato il percorso relativo.
@@ -20,6 +23,8 @@
RIGENERA
Usa AI per generare il messaggio di commit
APPLICA COME MESSAGGIO DI COMMIT
+ Nascondi SourceGit
+ Mostra Tutto
Applica
File Patch:
Seleziona file .patch da applicare
@@ -36,8 +41,10 @@
Revisione:
Archivia
Richiedi Password SourceGit
+ Inserisci passphrase:
FILE ASSUNTI COME INVARIATI
NESSUN FILE ASSUNTO COME INVARIATO
+ Carico l'Immagine...
Aggiorna
FILE BINARIO NON SUPPORTATO!!!
Biseca
@@ -66,8 +73,13 @@
Invia ${0}$
Riallinea ${0}$ su ${1}$...
Rinomina ${0}$...
+ Resetta ${0}$ a ${1}$...
Imposta Branch di Tracciamento...
Confronto Branch
+ Invalido
+ REMOTO
+ TRACCIAMENTO
+ URL
ANNULLA
Ripristina la Revisione Padre
Ripristina Questa Revisione
@@ -76,6 +88,9 @@
Mostra come elenco di file e cartelle
Mostra come elenco di percorsi
Mostra come albero del filesystem
+ Cambia l'URL del Sottomodulo
+ Sottomodulo:
+ URL:
Checkout Branch
Checkout Commit
Commit:
@@ -85,6 +100,9 @@
Stasha e Ripristina
Aggiorna tutti i sottomoduli
Branch:
+ Il tuo HEAD attuale contiene commit non connessi ad alcun branch/tag! Sicuro di voler continuare?
+ Checkout & Avanzamento Veloce
+ Avanzamento Veloce verso:
Cherry Pick
Aggiungi sorgente al messaggio di commit
Commit(s):
@@ -109,17 +127,29 @@
Confronta con HEAD
Confronta con Worktree
Autore
+ Messaggio
Committer
SHA
Oggetto
Azione Personalizzata
+ Rebase Interattivo
+ Scarta...
+ Modifica...
+ Correggi nel Genitore...
+ Ribasare interattivamente ${0}$ su ${1}$
+ Riformula...
+ Compatta nel Genitore...
Unisci a ${0}$
Unisci ...
+ Invia ${0}$ a ${1}$
+ Ribasa ${0}$ su ${1}$
+ Resetta ${0}$ su ${1}$
Annulla Commit
Modifica
Salva come Patch...
Compatta nel Genitore
MODIFICHE
+ file modificati
Cerca Modifiche...
FILE
File LFS
@@ -132,26 +162,42 @@
Controlla i riferimenti che contengono questo commit
IL COMMIT È CONTENUTO DA
Mostra solo le prime 100 modifiche. Vedi tutte le modifiche nella scheda MODIFICHE.
+ Chiave:
MESSAGGIO
GENITORI
RIFERIMENTI
SHA
+ Firmatario:
Apri nel Browser
Descrizione
OGGETTO
Inserisci l'oggetto del commit
Configura Repository
TEMPLATE DI COMMIT
+ Puoi usare ${files_num}, ${branch_name}, ${files} e ${files:N} dove N è il numero massimo di percorsi di file da mostrare.
Contenuto Template:
Nome Template:
AZIONE PERSONALIZZATA
Argomenti:
+ Parametri integrati:
+
+ ${REPO} Percorso del repository
+ ${REMOTE} Remoto selezionato o remoto del branch selezionato
+ ${BRANCH} Branch selezionato, senza la parte ${REMOTE} per i branch remoti
+ ${BRANCH_FRIENDLY_NAME} Nome amichevole del branch selezionato, contiene la parte ${REMOTE} per i branch remoti
+ ${SHA} Hash del commit selezionato
+ ${TAG} Tag selezionato
+ $1, $2 ... Valori dei controlli di input
File Eseguibile:
+ Controlli di Input:
+ Modifica
Nome:
Ambito:
Branch
Commit
+ Remoto
Repository
+ Tag
Attendi la fine dell'azione
Indirizzo Email
Indirizzo email
@@ -162,6 +208,7 @@
Modalità di Merge Preferita
TRACCIAMENTO ISSUE
Aggiungi una regola di esempio per Azure DevOps
+ Aggiungi regola per Gerrit Change-Id Commit
Aggiungi una regola di esempio per un Issue Gitee
Aggiungi una regola di esempio per un Pull Request Gitee
Aggiungi una regola di esempio per GitHub
@@ -171,6 +218,7 @@
Nuova Regola
Espressione Regex Issue:
Nome Regola:
+ Condividi questa regola nel file .issuetracker
URL Risultato:
Utilizza $1, $2 per accedere ai valori dei gruppi regex.
AI
@@ -180,6 +228,16 @@
Proxy HTTP usato da questo repository
Nome Utente
Nome utente per questo repository
+ Modifica Controlli Azione Personalizzata
+ Valore Selezionato:
+ Quando selezionato, questo valore sarà usato negli argomenti della riga di comando
+ Descrizione:
+ Predefinito:
+ È una Cartella:
+ Etichetta:
+ Opzioni:
+ Usa '|' come delimitatore per le opzioni
+ Tipo:
Spazi di Lavoro
Colore
Nome
@@ -188,6 +246,8 @@
Trovato un commit vuoto! Vuoi procedere (--allow-empty)?
STAGE DI TUTTO E COMMITTA
Trovato un commit vuoto! Vuoi procedere (--allow-empty) o fare lo stage di tutto e committare?
+ Riavvio Necessario
+ È necessario riavviare l'applicazione per applicare le modifiche.
Guida Commit Convenzionali
Modifica Sostanziale:
Issue Chiusa:
@@ -209,6 +269,7 @@
Inserisci il nome del branch.
Gli spazi verranno rimpiazzati con dei trattini.
Crea Branch Locale
+ Sovrascrivi branch esistente
Crea Tag...
Nuovo Tag Su:
Firma con GPG
@@ -223,12 +284,18 @@
leggero
Tieni premuto Ctrl per avviare direttamente
Taglia
+ Deinizializza Sottomodulo
+ Forza deinizializzazione anche se contiene modifiche locali.
+ Sottomodulo:
Elimina Branch
Branch:
Stai per eliminare un branch remoto!!!
Elimina anche il branch remoto ${0}$
Elimina Branch Multipli
Stai per eliminare più branch contemporaneamente. Controlla attentamente prima di procedere!
+ Elimina Tag Multipli
+ Eliminali dai remoti
+ Stai cercando di eliminare più tag contemporaneamente. Assicurati di controllare attentamente prima di procedere!
Elimina Remoto
Remoto:
Percorso:
@@ -246,29 +313,36 @@
Modalità File Modificata
Prima differenza
Ignora Modifiche agli Spazi
+ FUSIONE
+ AFFIANCATI
+ SCORRIMENTO
Ultima differenza
MODIFICA OGGETTO LFS
+ NUOVO
Differenza Successiva
NESSUNA MODIFICA O SOLO CAMBIAMENTI DI FINE LINEA
+ VECCHIO
Differenza Precedente
Salva come Patch
Mostra Simboli Nascosti
Diff Affiancato
SOTTOMODULO
+ ELIMINATO
NUOVO
Scambia
Evidenziazione Sintassi
Avvolgimento delle Parole
- Abilita la navigazione a blocchi
Apri nello Strumento di Merge
Mostra Tutte le Righe
Diminuisci Numero di Righe Visibili
Aumenta Numero di Righe Visibili
SELEZIONA UN FILE PER VISUALIZZARE LE MODIFICHE
+ Cronologia Cartella
Scarta Modifiche
Tutte le modifiche locali nella copia di lavoro.
Modifiche:
Includi file ignorati
+ Includi file non tracciati
Un totale di {0} modifiche saranno scartate
Questa azione non può essere annullata!!!
Segnalibro:
@@ -276,6 +350,8 @@
Destinazione:
Modifica Gruppo Selezionato
Modifica Repository Selezionato
+ Destinazione:
+ Questo repository
Recupera
Recupera da tutti i remoti
Forza la sovrascrittura dei riferimenti locali
@@ -368,6 +444,8 @@
Vai alla pagina precedente
Crea una nuova pagina
Apri la finestra delle preferenze
+ Cambia workspace attivo
+ Cambia scheda attiva
REPOSITORY
Committa le modifiche in tsage
Committa e invia le modifiche in stage
@@ -403,12 +481,16 @@
Riallinea Interattivamente
Stasha e Riapplica modifiche locali
Su:
+ Trascina per riordinare i commit
Branch di destinazione:
Copia il Link
Apri nel Browser
ERRORE
AVVISO
+ Workspaces
+ Schede
Unisci Branch
+ Personalizza messaggio di merge
In:
Opzione di Unione:
Sorgente:
@@ -416,6 +498,9 @@
Commit di tutte le modifiche
Strategia:
Obiettivi:
+ Sposta Sottomodulo
+ Sposta Verso:
+ Sottomodulo:
Sposta Nodo Repository
Seleziona nodo padre per:
Nome:
@@ -486,6 +571,7 @@
Questa applicazione richiede Git (>= 2.25.1)
Percorso Installazione
Abilita la verifica HTTP SSL
+ Usa git-credential-libsecret invece di git-credential-manager
Nome Utente
Nome utente Git globale
Versione di Git
@@ -511,6 +597,7 @@
Modifiche Locali:
Scarta
Stasha e Riapplica
+ Aggiorna tutti i sottomoduli
Remoto:
Scarica (Recupera e Unisci)
Riallineare anziché unire
@@ -518,10 +605,13 @@
Assicurati che i sottomoduli siano stati inviati
Forza l'invio
Branch Locale:
+ NUOVO
Remoto:
+ Revisione:
+ Invia Revisione Al Remoto
Invia modifiche al remoto
Branch Remoto:
- Imposta come branch di tracking
+ Imposta come branch di tracciamento
Invia tutti i tag
Invia Tag al Remoto
Invia a tutti i remoti
@@ -538,6 +628,7 @@
URL del Repository:
URL del repository Git remoto
Copia URL
+ Azione Personalizzata
Elimina...
Modifica...
Recupera
@@ -558,10 +649,12 @@
Pulizia (GC e Potatura)
Esegui il comando `git gc` per questo repository.
Cancella tutto
+ Cancella
Configura questo repository
CONTINUA
Azioni Personalizzate
Nessuna Azione Personalizzata
+ Dashboard
Scarta tutte le modifiche
Apri nell'Esplora File
Cerca Branch/Tag/Sottomodulo
@@ -576,9 +669,11 @@
Per data del commit
Topologicamente
BRANCH LOCALI
+ Altre opzioni...
Vai a HEAD
Crea Branch
CANCELLA LE NOTIFICHE
+ Evidenzia solo il branch corrente
Apri in {0}
Apri in Strumenti Esterni
REMOTI
@@ -588,8 +683,13 @@
Committer
Contenuto
Messaggio
+ Percorso
SHA
Branch Corrente
+ Solo commit decorati
+ Solo primo genitore
+ MOSTRA FLAG
+ Mostra commit persi
Mostra i Sottomoduli Come Albero
Mostra Tag come Albero
SALTA
@@ -603,6 +703,7 @@
Per nome
Ordina
Apri nel Terminale
+ Usa tempo relativo
Visualizza i Log
Visita '{0}' nel Browser
WORKTREE
@@ -613,6 +714,9 @@
Modalità Reset:
Sposta a:
Branch Corrente:
+ Resetta Branch (Senza Checkout)
+ Sposta Verso:
+ Branch:
Mostra nell'Esplora File
Ripristina Commit
Commit:
@@ -631,6 +735,11 @@
Salta questa versione
Aggiornamento Software
Non ci sono aggiornamenti disponibili.
+ Imposta Branch del Sottomodulo
+ Sottomodulo:
+ Attuale:
+ Cambia In:
+ Opzionale. Imposta al valore predefinito quando è vuoto.
Imposta il Branch
Branch:
Rimuovi upstream
@@ -646,10 +755,12 @@
Includi file non tracciati
Messaggio:
Opzionale. Informazioni di questo stash
+ Modalità:
Solo modifiche in stage
Sia le modifiche in stage che quelle non in stage dei file selezionati saranno stashate!!!
Stasha Modifiche Locali
Applica
+ Copia Messaggio
Elimina
Salva come Patch...
Elimina Stash
@@ -665,20 +776,36 @@
COMMIT:
SOTTOMODULI
Aggiungi Sottomodulo
+ BRANCH
+ Branch
Percorso Relativo
+ Deinizializza
Recupera sottomoduli annidati
+ Cronologia
+ Sposta
Apri Repository del Sottomodulo
Percorso Relativo:
Cartella relativa per memorizzare questo modulo.
Elimina Sottomodulo
+ Imposta Branch
+ Cambia URL
STATO
modificato
non inizializzato
revisione cambiata
non unito
+ Aggiorna
URL
OK
+ AUTORE TAG
+ DATA
+ Messaggio
+ Nome
+ Autore
+ Copia Nome Tag
+ Azione Personalizzata
Elimina ${0}$...
+ Elimina i {0} tag selezionati...
Unisci ${0}$ in ${1}$...
Invia ${0}$...
Aggiorna Sottomoduli
@@ -686,6 +813,7 @@
Inizializza se necessario
Ricorsivamente
Sottomodulo:
+ Aggiorna al branch di tracciamento remoto del sottomodulo
URL:
Log
CANCELLA TUTTO
@@ -709,6 +837,7 @@
Git Ignore
Ignora tutti i file *{0}
Ignora i file *{0} nella stessa cartella
+ Ignora file non tracciati in questa cartella
Ignora solo questo file
Modifica
Puoi aggiungere in stage questo file ora.
@@ -718,6 +847,7 @@
Attiva evento click
Commit (Modifica)
Stage di tutte le modifiche e fai il commit
+ Stai creando un commit su un HEAD distaccato. Vuoi continuare?
Hai stageato {0} file ma solo {1} file mostrati ({2} file sono stati filtrati). Vuoi procedere?
CONFLITTI RILEVATI
APRI STRUMENTO DI MERGE ESTERNO
@@ -728,6 +858,7 @@
INCLUDI FILE NON TRACCIATI
NESSUN MESSAGGIO RECENTE INSERITO
NESSUN TEMPLATE DI COMMIT
+ Reimposta Autore
SignOff
IN STAGE
RIMUOVI DA STAGE
diff --git a/src/Resources/Locales/ja_JP.axaml b/src/Resources/Locales/ja_JP.axaml
index 1d0f26bc..11221ef3 100644
--- a/src/Resources/Locales/ja_JP.axaml
+++ b/src/Resources/Locales/ja_JP.axaml
@@ -241,7 +241,6 @@
スワップ
シンタックスハイライト
行の折り返し
- ブロックナビゲーションを有効化
マージツールで開く
すべての行を表示
表示する行数を減らす
diff --git a/src/Resources/Locales/ru_RU.axaml b/src/Resources/Locales/ru_RU.axaml
index 8a4f48a9..25427f44 100644
--- a/src/Resources/Locales/ru_RU.axaml
+++ b/src/Resources/Locales/ru_RU.axaml
@@ -23,6 +23,8 @@
ПЕРЕСОЗДАТЬ
Использовать OpenAI для создания сообщения о ревизии
ПРИМЕНИТЬ КАК СООБЩЕНИЕ РЕВИЗИИ
+ Скрыть SourceGit
+ Показать все
Исправить
Файл заплатки:
Выберите файл .patch для применения
@@ -177,6 +179,15 @@
Название:
ПОЛЬЗОВАТЕЛЬСКОЕ ДЕЙСТВИЕ
Аргументы:
+ Built-in parameters:
+
+ ${REPO} Путь репозитория
+ ${REMOTE} Выбранная удаённая ветка
+ ${BRANCH} Выбранная ветка, без ${REMOTE} удалённых веток
+ ${BRANCH_FRIENDLY_NAME} Понятное имя выбранной ветки, содержащую ${REMOTE} удалённые ветки
+ ${SHA} Хеш выбранной ревизии
+ ${TAG} Выбранная метка
+ $1, $2 ... Ввод управляющих значений
Исполняемый файл:
Элементы управления вводом:
Редактор
@@ -321,7 +332,6 @@
Обмен
Подсветка синтаксиса
Перенос слов в строке
- Разрешить навигацию по блокам
Открыть в инструменте слияния
Показывать все строки
Меньше видимых строк
@@ -529,7 +539,6 @@
ВИД
Шрифт по умолчанию
Редактировать ширину вкладки
- Включить компактные каталоги в дереве изменений
Размер шрифта
По умолчанию
Редактор
@@ -546,9 +555,11 @@
ОСНОВНЫЕ
Проверить обновления при старте
Формат даты
+ Включить компактные каталоги в дереве изменений
Язык
Максимальная длина истории
Показывать время автора вместо времени ревизии на графике
+ Показывать вкладку «ЛОКАЛЬНЫЕ ИЗМЕНЕНИЯ» по умолчанию
Показать наследника в деталях комментария
Показывать метки на графике
Длина темы ревизии
@@ -832,6 +843,8 @@
Игнорировать только эти файлы
Изменить
Теперь вы можете сформировать этот файл.
+ Очистить историю
+ Вы действительно хотите очистить всю историю сообщений ревизии? Данное действие нельзя отменить.
ЗАФИКСИРОВАТЬ
ЗАФИКСИРОВАТЬ и ОТПРАВИТЬ
Шаблон/Истории
diff --git a/src/Resources/Locales/ta_IN.axaml b/src/Resources/Locales/ta_IN.axaml
index 29150e14..74cd76d1 100644
--- a/src/Resources/Locales/ta_IN.axaml
+++ b/src/Resources/Locales/ta_IN.axaml
@@ -241,7 +241,6 @@
இடமாற்று
தொடரியல் சிறப்பம்சமாக்கல்
வரி சொல் மடக்கு
- தடுப்பு-வழிசெலுத்தலை இயக்கு
ஒன்றிணை கருவியில் திற
அனைத்து வரிகளையும் காட்டு
தெரியும் வரிகளின் எண்ணிக்கையைக் குறை
diff --git a/src/Resources/Locales/uk_UA.axaml b/src/Resources/Locales/uk_UA.axaml
index 4880e02c..bc674137 100644
--- a/src/Resources/Locales/uk_UA.axaml
+++ b/src/Resources/Locales/uk_UA.axaml
@@ -246,7 +246,6 @@
Поміняти місцями
Підсвітка синтаксису
Перенос слів
- Увімкнути навігацію блоками
Відкрити в інструменті злиття
Показати всі рядки
Зменшити кількість видимих рядків
diff --git a/src/Resources/Locales/zh_CN.axaml b/src/Resources/Locales/zh_CN.axaml
index 0f2fe026..18e4cf47 100644
--- a/src/Resources/Locales/zh_CN.axaml
+++ b/src/Resources/Locales/zh_CN.axaml
@@ -332,7 +332,6 @@
交换比对双方
语法高亮
自动换行
- 启用基于变更块的跳转
使用外部合并工具查看
显示完整文件
减少可见的行数
@@ -540,7 +539,6 @@
外观配置
缺省字体
编辑器制表符宽度
- 在变更列表树中启用紧凑文件夹模式
字体大小
默认
代码编辑器
@@ -557,9 +555,11 @@
通用配置
启动时检测软件更新
日期时间格式
+ 在变更列表树中启用紧凑文件夹模式
显示语言
最大历史提交数
在提交路线图中显示修改时间而非提交时间
+ 默认显示【本地更改】页
在提交详情页中显示子提交列表
在提交路线图中显示标签
SUBJECT字数检测
@@ -843,6 +843,8 @@
忽略本文件
修补
现在您已可将其加入暂存区中
+ 清空历史提交信息
+ 您确定要清空所有的历史提交信息记录吗(执行操作后无法撤回)?
提交
提交并推送
历史输入/模板
diff --git a/src/Resources/Locales/zh_TW.axaml b/src/Resources/Locales/zh_TW.axaml
index 068a2fdb..30666ab1 100644
--- a/src/Resources/Locales/zh_TW.axaml
+++ b/src/Resources/Locales/zh_TW.axaml
@@ -332,7 +332,6 @@
交換比對雙方
語法上色
自動換行
- 區塊切換上/下一個差異
使用外部合併工具檢視
顯示檔案的全部內容
減少可見的行數
@@ -540,7 +539,6 @@
外觀設定
預設字型
編輯器 Tab 寬度
- 在變更樹中啟用精簡文件夾顯示模式
字型大小
預設
程式碼
@@ -557,9 +555,11 @@
一般設定
啟動時檢查軟體更新
日期時間格式
+ 在變更樹中啟用精簡文件夾顯示模式
顯示語言
最大歷史提交數
在提交路線圖中顯示修改時間而非提交時間
+ 預設顯示「本機變更」頁面
在提交詳細資訊中顯示後續提交
在路線圖中顯示標籤
提交標題字數偵測
@@ -843,6 +843,8 @@
忽略本檔案
修補
現在您已可將其加入暫存區中
+ 清除提交訊息歷史
+ 您確定要清除所有提交訊息記錄嗎 (動作無法撤銷) ?
提 交
提交並推送
歷史輸入/範本
diff --git a/src/Resources/Styles.axaml b/src/Resources/Styles.axaml
index a886f065..f127c9e2 100644
--- a/src/Resources/Styles.axaml
+++ b/src/Resources/Styles.axaml
@@ -740,6 +740,7 @@