Skip to content

Commit 7fc7c8f

Browse files
committed
Merge branch 'release/v2025.04'
2 parents 0f13c00 + 3b76a30 commit 7fc7c8f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+1818
-902
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
4848
## Translation Status
4949

50-
[![en_US](https://img.shields.io/badge/en__US-100%25-brightgreen)](TRANSLATION.md) [![de__DE](https://img.shields.io/badge/de__DE-100.00%25-brightgreen)](TRANSLATION.md) [![es__ES](https://img.shields.io/badge/es__ES-100.00%25-brightgreen)](TRANSLATION.md) [![fr__FR](https://img.shields.io/badge/fr__FR-94.69%25-yellow)](TRANSLATION.md) [![it__IT](https://img.shields.io/badge/it__IT-93.32%25-yellow)](TRANSLATION.md) [![pt__BR](https://img.shields.io/badge/pt__BR-94.41%25-yellow)](TRANSLATION.md) [![ru__RU](https://img.shields.io/badge/ru__RU-100.00%25-brightgreen)](TRANSLATION.md) [![zh__CN](https://img.shields.io/badge/zh__CN-100.00%25-brightgreen)](TRANSLATION.md) [![zh__TW](https://img.shields.io/badge/zh__TW-100.00%25-brightgreen)](TRANSLATION.md)
50+
[![en_US](https://img.shields.io/badge/en__US-%E2%88%9A-brightgreen)](TRANSLATION.md) [![de__DE](https://img.shields.io/badge/de__DE-98.13%25-yellow)](TRANSLATION.md) [![es__ES](https://img.shields.io/badge/es__ES-98.13%25-yellow)](TRANSLATION.md) [![fr__FR](https://img.shields.io/badge/fr__FR-92.91%25-yellow)](TRANSLATION.md) [![it__IT](https://img.shields.io/badge/it__IT-98.40%25-yellow)](TRANSLATION.md) [![pt__BR](https://img.shields.io/badge/pt__BR-92.65%25-yellow)](TRANSLATION.md) [![ru__RU](https://img.shields.io/badge/ru__RU-98.13%25-yellow)](TRANSLATION.md) [![zh__CN](https://img.shields.io/badge/zh__CN-%E2%88%9A-brightgreen)](TRANSLATION.md) [![zh__TW](https://img.shields.io/badge/zh__TW-%E2%88%9A-brightgreen)](TRANSLATION.md)
5151

5252
> [!NOTE]
5353
> You can find the missing keys in [TRANSLATION.md](TRANSLATION.md)
@@ -136,11 +136,11 @@ This software supports using OpenAI or other AI service that has an OpenAI comap
136136

137137
For `OpenAI`:
138138

139-
* `Server` must be `https://api.openai.com/v1/chat/completions`
139+
* `Server` must be `https://api.openai.com/v1`
140140

141141
For other AI service:
142142

143-
* The `Server` should fill in a URL equivalent to OpenAI's `https://api.openai.com/v1/chat/completions`. For example, when using `Ollama`, it should be `http://localhost:11434/v1/chat/completions` instead of `http://localhost:11434/api/generate`
143+
* The `Server` should fill in a URL equivalent to OpenAI's `https://api.openai.com/v1`. For example, when using `Ollama`, it should be `http://localhost:11434/v1` instead of `http://localhost:11434/api/generate`
144144
* The `API Key` is optional that depends on the service
145145

146146
## External Tools

TRANSLATION.md

Lines changed: 88 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,66 @@
1-
### de_DE.axaml: 100.00%
1+
### de_DE.axaml: 98.13%
22

33

44
<details>
55
<summary>Missing Keys</summary>
66

7-
7+
- Text.AIAssistant.Regen
8+
- Text.AIAssistant.Use
9+
- Text.ApplyStash
10+
- Text.ApplyStash.DropAfterApply
11+
- Text.ApplyStash.RestoreIndex
12+
- Text.ApplyStash.Stash
13+
- Text.Clone.RecurseSubmodules
14+
- Text.CreateBranch.Name.WarnSpace
15+
- Text.DeleteRepositoryNode.Path
16+
- Text.DeleteRepositoryNode.TipForGroup
17+
- Text.DeleteRepositoryNode.TipForRepository
18+
- Text.Stash.AutoRestore
19+
- Text.Stash.AutoRestore.Tip
20+
- Text.WorkingCopy.SignOff
821

922
</details>
1023

11-
### es_ES.axaml: 100.00%
24+
### es_ES.axaml: 98.13%
1225

1326

1427
<details>
1528
<summary>Missing Keys</summary>
1629

17-
30+
- Text.AIAssistant.Regen
31+
- Text.AIAssistant.Use
32+
- Text.ApplyStash
33+
- Text.ApplyStash.DropAfterApply
34+
- Text.ApplyStash.RestoreIndex
35+
- Text.ApplyStash.Stash
36+
- Text.Clone.RecurseSubmodules
37+
- Text.CreateBranch.Name.WarnSpace
38+
- Text.DeleteRepositoryNode.Path
39+
- Text.DeleteRepositoryNode.TipForGroup
40+
- Text.DeleteRepositoryNode.TipForRepository
41+
- Text.Stash.AutoRestore
42+
- Text.Stash.AutoRestore.Tip
43+
- Text.WorkingCopy.SignOff
1844

1945
</details>
2046

21-
### fr_FR.axaml: 94.69%
47+
### fr_FR.axaml: 92.91%
2248

2349

2450
<details>
2551
<summary>Missing Keys</summary>
2652

53+
- Text.AIAssistant.Regen
54+
- Text.AIAssistant.Use
55+
- Text.ApplyStash
56+
- Text.ApplyStash.DropAfterApply
57+
- Text.ApplyStash.RestoreIndex
58+
- Text.ApplyStash.Stash
59+
- Text.Clone.RecurseSubmodules
60+
- Text.CreateBranch.Name.WarnSpace
61+
- Text.DeleteRepositoryNode.Path
62+
- Text.DeleteRepositoryNode.TipForGroup
63+
- Text.DeleteRepositoryNode.TipForRepository
2764
- Text.InProgress.CherryPick.Head
2865
- Text.InProgress.Merge.Operating
2966
- Text.InProgress.Rebase.StoppedAt
@@ -62,81 +99,58 @@
6299
- Text.SetUpstream.Unset
63100
- Text.SetUpstream.Upstream
64101
- Text.SHALinkCM.NavigateTo
102+
- Text.Stash.AutoRestore
103+
- Text.Stash.AutoRestore.Tip
65104
- Text.WorkingCopy.CommitToEdit
105+
- Text.WorkingCopy.SignOff
66106

67107
</details>
68108

69-
### it_IT.axaml: 93.32%
109+
### it_IT.axaml: 98.40%
70110

71111

72112
<details>
73113
<summary>Missing Keys</summary>
74114

75-
- Text.BranchCM.MergeMultiBranches
76-
- Text.CommitCM.Merge
77-
- Text.CommitCM.MergeMultiple
78-
- Text.CommitDetail.Files.Search
79-
- Text.CommitDetail.Info.Children
80-
- Text.Configure.IssueTracker.AddSampleGiteeIssue
81-
- Text.Configure.IssueTracker.AddSampleGiteePullRequest
82-
- Text.Configure.IssueTracker.AddSampleGitLabMergeRequest
83-
- Text.Configure.OpenAI.Preferred
84-
- Text.Configure.OpenAI.Preferred.Tip
85-
- Text.Diff.UseBlockNavigation
86-
- Text.Fetch.Force
87-
- Text.FileCM.ResolveUsing
88-
- Text.InProgress.CherryPick.Head
89-
- Text.InProgress.Merge.Operating
90-
- Text.InProgress.Rebase.StoppedAt
91-
- Text.InProgress.Revert.Head
92-
- Text.Merge.Source
93-
- Text.MergeMultiple
94-
- Text.MergeMultiple.CommitChanges
95-
- Text.MergeMultiple.Strategy
96-
- Text.MergeMultiple.Targets
97-
- Text.Preferences.General.DateFormat
98-
- Text.Preferences.General.ShowChildren
99-
- Text.Preferences.Git.SSLVerify
100-
- Text.Repository.FilterCommits
101-
- Text.Repository.FilterCommits.Default
102-
- Text.Repository.FilterCommits.Exclude
103-
- Text.Repository.FilterCommits.Include
104-
- Text.Repository.HistoriesLayout
105-
- Text.Repository.HistoriesLayout.Horizontal
106-
- Text.Repository.HistoriesLayout.Vertical
107-
- Text.Repository.HistoriesOrder
108-
- Text.Repository.HistoriesOrder.ByDate
109-
- Text.Repository.HistoriesOrder.Topo
110-
- Text.Repository.OnlyHighlightCurrentBranchInHistories
111-
- Text.Repository.Skip
112-
- Text.Repository.Tags.OrderByCreatorDate
113-
- Text.Repository.Tags.OrderByNameAsc
114-
- Text.Repository.Tags.OrderByNameDes
115-
- Text.Repository.Tags.Sort
116-
- Text.Repository.UseRelativeTimeInHistories
117-
- Text.SetUpstream
118-
- Text.SetUpstream.Local
119-
- Text.SetUpstream.Unset
120-
- Text.SetUpstream.Upstream
121-
- Text.SHALinkCM.CopySHA
122-
- Text.SHALinkCM.NavigateTo
123-
- Text.WorkingCopy.CommitToEdit
115+
- Text.AIAssistant.Regen
116+
- Text.AIAssistant.Use
117+
- Text.ApplyStash
118+
- Text.ApplyStash.DropAfterApply
119+
- Text.ApplyStash.RestoreIndex
120+
- Text.ApplyStash.Stash
121+
- Text.Clone.RecurseSubmodules
122+
- Text.DeleteRepositoryNode.Path
123+
- Text.DeleteRepositoryNode.TipForGroup
124+
- Text.DeleteRepositoryNode.TipForRepository
125+
- Text.Stash.AutoRestore
126+
- Text.Stash.AutoRestore.Tip
124127

125128
</details>
126129

127-
### pt_BR.axaml: 94.41%
130+
### pt_BR.axaml: 92.65%
128131

129132

130133
<details>
131134
<summary>Missing Keys</summary>
132135

136+
- Text.AIAssistant.Regen
137+
- Text.AIAssistant.Use
138+
- Text.ApplyStash
139+
- Text.ApplyStash.DropAfterApply
140+
- Text.ApplyStash.RestoreIndex
141+
- Text.ApplyStash.Stash
133142
- Text.BranchCM.MergeMultiBranches
143+
- Text.Clone.RecurseSubmodules
134144
- Text.CommitCM.Merge
135145
- Text.CommitCM.MergeMultiple
136146
- Text.CommitDetail.Files.Search
137147
- Text.CommitDetail.Info.Children
138148
- Text.Configure.IssueTracker.AddSampleGiteeIssue
139149
- Text.Configure.IssueTracker.AddSampleGiteePullRequest
150+
- Text.CreateBranch.Name.WarnSpace
151+
- Text.DeleteRepositoryNode.Path
152+
- Text.DeleteRepositoryNode.TipForGroup
153+
- Text.DeleteRepositoryNode.TipForRepository
140154
- Text.Diff.UseBlockNavigation
141155
- Text.Fetch.Force
142156
- Text.FileCM.ResolveUsing
@@ -170,17 +184,33 @@
170184
- Text.SetUpstream.Unset
171185
- Text.SetUpstream.Upstream
172186
- Text.SHALinkCM.NavigateTo
187+
- Text.Stash.AutoRestore
188+
- Text.Stash.AutoRestore.Tip
173189
- Text.WorkingCopy.CommitToEdit
190+
- Text.WorkingCopy.SignOff
174191

175192
</details>
176193

177-
### ru_RU.axaml: 100.00%
194+
### ru_RU.axaml: 98.13%
178195

179196

180197
<details>
181198
<summary>Missing Keys</summary>
182199

183-
200+
- Text.AIAssistant.Regen
201+
- Text.AIAssistant.Use
202+
- Text.ApplyStash
203+
- Text.ApplyStash.DropAfterApply
204+
- Text.ApplyStash.RestoreIndex
205+
- Text.ApplyStash.Stash
206+
- Text.Clone.RecurseSubmodules
207+
- Text.CreateBranch.Name.WarnSpace
208+
- Text.DeleteRepositoryNode.Path
209+
- Text.DeleteRepositoryNode.TipForGroup
210+
- Text.DeleteRepositoryNode.TipForRepository
211+
- Text.Stash.AutoRestore
212+
- Text.Stash.AutoRestore.Tip
213+
- Text.WorkingCopy.SignOff
184214

185215
</details>
186216

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2025.03
1+
2025.04

build/scripts/localization-check.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ async function calculateTranslationRate() {
2525
const files = (await fs.readdir(localesDir)).filter(file => file !== 'en_US.axaml' && file.endsWith('.axaml'));
2626

2727
// Add en_US badge first
28-
badges.push(`[![en_US](https://img.shields.io/badge/en__US-100%25-brightgreen)](TRANSLATION.md)`);
28+
badges.push(`[![en_US](https://img.shields.io/badge/en__US-%E2%88%9A-brightgreen)](TRANSLATION.md)`);
2929

3030
for (const file of files) {
3131
const filePath = path.join(localesDir, file);
@@ -40,8 +40,12 @@ async function calculateTranslationRate() {
4040

4141
// Add badges
4242
const locale = file.replace('.axaml', '').replace('_', '__');
43-
const badgeColor = translationRate === 100 ? 'brightgreen' : translationRate >= 75 ? 'yellow' : 'red';
44-
badges.push(`[![${locale}](https://img.shields.io/badge/${locale}-${translationRate.toFixed(2)}%25-${badgeColor})](TRANSLATION.md)`);
43+
if (translationRate === 100) {
44+
badges.push(`[![${locale}](https://img.shields.io/badge/${locale}-%E2%88%9A-brightgreen)](TRANSLATION.md)`);
45+
} else {
46+
const badgeColor = translationRate >= 75 ? 'yellow' : 'red';
47+
badges.push(`[![${locale}](https://img.shields.io/badge/${locale}-${translationRate.toFixed(2)}%25-${badgeColor})](TRANSLATION.md)`);
48+
}
4549
}
4650

4751
console.log(translationRates.join('\n\n'));

src/App.JsonCodeGen.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ public override void Write(Utf8JsonWriter writer, GridLength value, JsonSerializ
4646
[JsonSerializable(typeof(Models.ExternalToolPaths))]
4747
[JsonSerializable(typeof(Models.InteractiveRebaseJobCollection))]
4848
[JsonSerializable(typeof(Models.JetBrainsState))]
49-
[JsonSerializable(typeof(Models.OpenAIChatRequest))]
50-
[JsonSerializable(typeof(Models.OpenAIChatResponse))]
5149
[JsonSerializable(typeof(Models.ThemeOverrides))]
5250
[JsonSerializable(typeof(Models.Version))]
5351
[JsonSerializable(typeof(Models.RepositorySettings))]

src/App.axaml.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Diagnostics;
34
using System.IO;
45
using System.Net.Http;
56
using System.Reflection;
67
using System.Text;
78
using System.Text.Json;
9+
using System.Threading;
810
using System.Threading.Tasks;
911

1012
using Avalonia;
@@ -332,17 +334,16 @@ private static void LogException(Exception ex)
332334
builder.Append($"Crash::: {ex.GetType().FullName}: {ex.Message}\n\n");
333335
builder.Append("----------------------------\n");
334336
builder.Append($"Version: {Assembly.GetExecutingAssembly().GetName().Version}\n");
335-
builder.Append($"OS: {Environment.OSVersion.ToString()}\n");
337+
builder.Append($"OS: {Environment.OSVersion}\n");
336338
builder.Append($"Framework: {AppDomain.CurrentDomain.SetupInformation.TargetFrameworkName}\n");
337339
builder.Append($"Source: {ex.Source}\n");
340+
builder.Append($"Thread Name: {Thread.CurrentThread.Name ?? "Unnamed"}\n");
341+
builder.Append($"User: {Environment.UserName}\n");
342+
builder.Append($"App Start Time: {Process.GetCurrentProcess().StartTime}\n");
343+
builder.Append($"Exception Time: {DateTime.Now}\n");
344+
builder.Append($"Memory Usage: {Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024} MB\n");
338345
builder.Append($"---------------------------\n\n");
339-
builder.Append(ex.StackTrace);
340-
while (ex.InnerException != null)
341-
{
342-
ex = ex.InnerException;
343-
builder.Append($"\n\nInnerException::: {ex.GetType().FullName}: {ex.Message}\n");
344-
builder.Append(ex.StackTrace);
345-
}
346+
builder.Append(ex);
346347

347348
var time = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
348349
var file = Path.Combine(Native.OS.DataDir, $"crash_{time}.log");

src/Commands/Clone.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public Clone(string ctx, string path, string url, string localName, string sshKe
1212
WorkingDirectory = path;
1313
TraitErrorAsOutput = true;
1414
SSHKey = sshKey;
15-
Args = "clone --progress --verbose --recurse-submodules ";
15+
Args = "clone --progress --verbose ";
1616

1717
if (!string.IsNullOrEmpty(extraArgs))
1818
Args += $"{extraArgs} ";

src/Commands/CompareRevisions.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ public CompareRevisions(string repo, string start, string end)
1818
Args = $"diff --name-status {based} {end}";
1919
}
2020

21+
public CompareRevisions(string repo, string start, string end, string path)
22+
{
23+
WorkingDirectory = repo;
24+
Context = repo;
25+
26+
var based = string.IsNullOrEmpty(start) ? "-R" : start;
27+
Args = $"diff --name-status {based} {end} -- \"{path}\"";
28+
}
29+
2130
public List<Models.Change> Result()
2231
{
2332
Exec();

src/Commands/Fetch.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace SourceGit.Commands
44
{
55
public class Fetch : Command
66
{
7-
public Fetch(string repo, string remote, bool noTags, bool prune, bool force, Action<string> outputHandler)
7+
public Fetch(string repo, string remote, bool noTags, bool force, Action<string> outputHandler)
88
{
99
_outputHandler = outputHandler;
1010
WorkingDirectory = repo;
@@ -21,9 +21,6 @@ public Fetch(string repo, string remote, bool noTags, bool prune, bool force, Ac
2121
if (force)
2222
Args += "--force ";
2323

24-
if (prune)
25-
Args += "--prune ";
26-
2724
Args += remote;
2825
}
2926

0 commit comments

Comments
 (0)