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 ### ![en_US](https://img.shields.io/badge/en__US-%E2%88%9A-brightgreen) -### ![de__DE](https://img.shields.io/badge/de__DE-%E2%88%9A-brightgreen) +### ![de__DE](https://img.shields.io/badge/de__DE-99.65%25-yellow) -### ![es__ES](https://img.shields.io/badge/es__ES-%E2%88%9A-brightgreen) +
+Missing keys in de_DE.axaml -### ![fr__FR](https://img.shields.io/badge/fr__FR-80.37%25-yellow) +- Text.Preferences.General.ShowChangesPageByDefault +- Text.WorkingCopy.ClearCommitHistories +- Text.WorkingCopy.ClearCommitHistories.Confirm + +
+ +### ![es__ES](https://img.shields.io/badge/es__ES-99.65%25-yellow) + +
+Missing keys in es_ES.axaml + +- Text.Preferences.General.ShowChangesPageByDefault +- Text.WorkingCopy.ClearCommitHistories +- Text.WorkingCopy.ClearCommitHistories.Confirm + +
+ +### ![fr__FR](https://img.shields.io/badge/fr__FR-80.07%25-yellow)
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
-### ![it__IT](https://img.shields.io/badge/it__IT-85.57%25-yellow) +### ![it__IT](https://img.shields.io/badge/it__IT-99.54%25-yellow)
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
-### ![ja__JP](https://img.shields.io/badge/ja__JP-80.37%25-yellow) +### ![ja__JP](https://img.shields.io/badge/ja__JP-80.07%25-yellow)
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
-### ![pt__BR](https://img.shields.io/badge/pt__BR-73.56%25-red) +### ![pt__BR](https://img.shields.io/badge/pt__BR-73.39%25-red)
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
-### ![ru__RU](https://img.shields.io/badge/ru__RU-99.65%25-yellow) +### ![ru__RU](https://img.shields.io/badge/ru__RU-%E2%88%9A-brightgreen) -
-Missing keys in ru_RU.axaml - -- Text.App.Hide -- Text.App.ShowAll -- Text.Configure.CustomAction.Arguments.Tip - -
- -### ![ta__IN](https://img.shields.io/badge/ta__IN-80.48%25-yellow) +### ![ta__IN](https://img.shields.io/badge/ta__IN-80.18%25-yellow)
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
-### ![uk__UA](https://img.shields.io/badge/uk__UA-81.64%25-yellow) +### ![uk__UA](https://img.shields.io/badge/uk__UA-81.34%25-yellow)
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 @@