Compare commits

...

7 commits

Author SHA1 Message Date
aikawayataro
c16a412aa3
fix: SourceGit misspelled as "Source Git" (#689)
Some checks failed
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
Localization Check / localization-check (push) Has been cancelled
2024-11-12 19:55:42 +08:00
aikawayataro
146f383aae
enhance: depend on SO in rpm package (#688)
* enhance: ensure LF line endings used with package manifests
* enhance: depend on shared object instead of package

Back in 211c263, I changed the dependencies to depend on package instead of shared object. This worked well, but introduced some problems for distros other than Fedora (81f76f0). I did this because of problems with the arm64 package, but now I think `__isa_bits` is a reasonable workaround.

* refactor: remove pointless variable checks

`set -u` was introduced in 6461765
2024-11-12 19:50:16 +08:00
leo
5e60780c9f
ux: new tooltip style
Signed-off-by: leo <longshuang@msn.cn>
2024-11-12 18:28:35 +08:00
leo
f66e9c828a
ux: layout for parent commit tooltip
Signed-off-by: leo <longshuang@msn.cn>
2024-11-12 18:14:00 +08:00
Nils van Rijsinge
b0a5a033c6
Add missing de_DE keys (#687)
* localization: add missing de_DE keys

- SaveAsPatch: 6486095
- VisualLine: 1a8acbf
- Hotkeys (Fetch, Pull, Push, CreateBranchOnCommit): d50b2c0
- IssueLinkCM: 163e8cc
- Appearance.FontSize: 774ec65

* doc: Update translation status and missing keys
2024-11-12 18:09:28 +08:00
leo
6e4f971733
feature: show tooltip of parent commit when hover the parent SHA
Signed-off-by: leo <longshuang@msn.cn>
2024-11-12 17:59:50 +08:00
leo
1f158eeded
refactor: use --tags instead of --force for git fetch command if Fetch without tags is turned off (#684)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-12 09:43:24 +08:00
16 changed files with 81 additions and 52 deletions

View file

@ -293,6 +293,10 @@ end_of_line = lf
[*.{cmd,bat}] [*.{cmd,bat}]
end_of_line = crlf end_of_line = crlf
# Package manifests
[{*.spec,control}]
end_of_line = lf
# YAML files # YAML files
[*.{yml,yaml}] [*.{yml,yaml}]
indent_size = 2 indent_size = 2

2
.gitattributes vendored
View file

@ -3,6 +3,8 @@
*.png binary *.png binary
*.ico binary *.ico binary
*.sh text eol=lf *.sh text eol=lf
*.spec text eol=lf
control text eol=lf
*.bat text eol=crlf *.bat text eol=crlf
*.cmd text eol=crlf *.cmd text eol=crlf
*.ps1 text eol=crlf *.ps1 text eol=crlf

View file

@ -47,7 +47,7 @@
## Translation Status ## Translation Status
[![en_US](https://img.shields.io/badge/en__US-100%25-brightgreen)](TRANSLATION.md) [![de__DE](https://img.shields.io/badge/de__DE-98.41%25-yellow)](TRANSLATION.md) [![es__ES](https://img.shields.io/badge/es__ES-99.57%25-yellow)](TRANSLATION.md) [![fr__FR](https://img.shields.io/badge/fr__FR-86.31%25-yellow)](TRANSLATION.md) [![pt__BR](https://img.shields.io/badge/pt__BR-99.57%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) [![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-99.57%25-yellow)](TRANSLATION.md) [![fr__FR](https://img.shields.io/badge/fr__FR-86.31%25-yellow)](TRANSLATION.md) [![pt__BR](https://img.shields.io/badge/pt__BR-99.57%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)
## How to Use ## How to Use

View file

@ -1,20 +1,10 @@
### de_DE.axaml: 98.41% ### de_DE.axaml: 100.00%
<details> <details>
<summary>Missing Keys</summary> <summary>Missing Keys</summary>
- Text.Diff.SaveAsPatch
- Text.Diff.VisualLines.All
- Text.Hotkeys.Repo.CreateBranchOnCommit
- Text.Hotkeys.Repo.Fetch
- Text.Hotkeys.Repo.Pull
- Text.Hotkeys.Repo.Push
- Text.IssueLinkCM.OpenInBrowser
- Text.IssueLinkCM.CopyLink
- Text.Preference.Appearance.FontSize
- Text.Preference.Appearance.FontSize.Default
- Text.Preference.Appearance.FontSize.Editor
</details> </details>

View file

@ -5,8 +5,8 @@ Summary: Open-source & Free Git Gui Client
License: MIT License: MIT
URL: https://sourcegit-scm.github.io/ URL: https://sourcegit-scm.github.io/
Source: https://github.com/sourcegit-scm/sourcegit/archive/refs/tags/v%_version.tar.gz Source: https://github.com/sourcegit-scm/sourcegit/archive/refs/tags/v%_version.tar.gz
Requires: (libX11 or libX11-6) Requires: libX11.so.6()(%{__isa_bits}bit)
Requires: (libSM or libSM6) Requires: libSM.so.6()(%{__isa_bits}bit)
%define _build_id_links none %define _build_id_links none

View file

@ -5,16 +5,6 @@ set -o
set -u set -u
set pipefail set pipefail
if [[ -z "$VERSION" ]]; then
echo "Provide the version as environment variable VERSION"
exit 1
fi
if [[ -z "$RUNTIME" ]]; then
echo "Provide the runtime as environment variable RUNTIME"
exit 1
fi
arch= arch=
appimage_arch= appimage_arch=
target= target=

View file

@ -5,16 +5,6 @@ set -o
set -u set -u
set pipefail set pipefail
if [[ -z "$VERSION" ]]; then
echo "Provide the version as environment variable VERSION"
exit 1
fi
if [[ -z "$RUNTIME" ]]; then
echo "Provide the runtime as environment variable RUNTIME"
exit 1
fi
cd build cd build
mkdir -p SourceGit.app/Contents/Resources mkdir -p SourceGit.app/Contents/Resources

View file

@ -5,16 +5,6 @@ set -o
set -u set -u
set pipefail set pipefail
if [[ -z "$VERSION" ]]; then
echo "Provide the version as environment variable VERSION"
exit 1
fi
if [[ -z "$RUNTIME" ]]; then
echo "Provide the runtime as environment variable RUNTIME"
exit 1
fi
cd build cd build
rm -rf SourceGit/*.pdb rm -rf SourceGit/*.pdb

View file

@ -16,7 +16,7 @@ namespace SourceGit.Commands
if (noTags) if (noTags)
Args += "--no-tags "; Args += "--no-tags ";
else else
Args += "--force "; Args += "--tags ";
if (prune) if (prune)
Args += "--prune "; Args += "--prune ";

View file

@ -240,6 +240,7 @@
<x:String x:Key="Text.Diff.Next" xml:space="preserve">Nächste Änderung</x:String> <x:String x:Key="Text.Diff.Next" xml:space="preserve">Nächste Änderung</x:String>
<x:String x:Key="Text.Diff.NoChange" xml:space="preserve">KEINE ÄNDERUNG ODER NUR ZEILEN-ENDE ÄNDERUNGEN</x:String> <x:String x:Key="Text.Diff.NoChange" xml:space="preserve">KEINE ÄNDERUNG ODER NUR ZEILEN-ENDE ÄNDERUNGEN</x:String>
<x:String x:Key="Text.Diff.Prev" xml:space="preserve">Vorherige Änderung</x:String> <x:String x:Key="Text.Diff.Prev" xml:space="preserve">Vorherige Änderung</x:String>
<x:String x:Key="Text.Diff.SaveAsPatch" xml:space="preserve">Als Patch speichern</x:String>
<x:String x:Key="Text.Diff.ShowHiddenSymbols" xml:space="preserve">Zeige versteckte Symbole</x:String> <x:String x:Key="Text.Diff.ShowHiddenSymbols" xml:space="preserve">Zeige versteckte Symbole</x:String>
<x:String x:Key="Text.Diff.SideBySide" xml:space="preserve">Nebeneinander</x:String> <x:String x:Key="Text.Diff.SideBySide" xml:space="preserve">Nebeneinander</x:String>
<x:String x:Key="Text.Diff.Submodule" xml:space="preserve">SUBMODUL</x:String> <x:String x:Key="Text.Diff.Submodule" xml:space="preserve">SUBMODUL</x:String>
@ -248,6 +249,7 @@
<x:String x:Key="Text.Diff.SyntaxHighlight" xml:space="preserve">Syntax Hervorhebung</x:String> <x:String x:Key="Text.Diff.SyntaxHighlight" xml:space="preserve">Syntax Hervorhebung</x:String>
<x:String x:Key="Text.Diff.ToggleWordWrap" xml:space="preserve">Zeilenumbruch</x:String> <x:String x:Key="Text.Diff.ToggleWordWrap" xml:space="preserve">Zeilenumbruch</x:String>
<x:String x:Key="Text.Diff.UseMerger" xml:space="preserve">Öffne in Merge Tool</x:String> <x:String x:Key="Text.Diff.UseMerger" xml:space="preserve">Öffne in Merge Tool</x:String>
<x:String x:Key="Text.Diff.VisualLines.All" xml:space="preserve">Alle Zeilen anzeigen</x:String>
<x:String x:Key="Text.Diff.VisualLines.Decr" xml:space="preserve">Weniger Zeilen anzeigen</x:String> <x:String x:Key="Text.Diff.VisualLines.Decr" xml:space="preserve">Weniger Zeilen anzeigen</x:String>
<x:String x:Key="Text.Diff.VisualLines.Incr" xml:space="preserve">Mehr Zeilen anzeigen</x:String> <x:String x:Key="Text.Diff.VisualLines.Incr" xml:space="preserve">Mehr Zeilen anzeigen</x:String>
<x:String x:Key="Text.Diff.Welcome" xml:space="preserve">WÄHLE EINE DATEI AUS UM ÄNDERUNGEN ANZUZEIGEN</x:String> <x:String x:Key="Text.Diff.Welcome" xml:space="preserve">WÄHLE EINE DATEI AUS UM ÄNDERUNGEN ANZUZEIGEN</x:String>
@ -364,8 +366,12 @@
<x:String x:Key="Text.Hotkeys.Repo.Commit" xml:space="preserve">Gestagte Änderungen committen</x:String> <x:String x:Key="Text.Hotkeys.Repo.Commit" xml:space="preserve">Gestagte Änderungen committen</x:String>
<x:String x:Key="Text.Hotkeys.Repo.CommitAndPush" xml:space="preserve">Gestagte Änderungen committen und pushen</x:String> <x:String x:Key="Text.Hotkeys.Repo.CommitAndPush" xml:space="preserve">Gestagte Änderungen committen und pushen</x:String>
<x:String x:Key="Text.Hotkeys.Repo.CommitWithAutoStage" xml:space="preserve">Alle Änderungen stagen und committen</x:String> <x:String x:Key="Text.Hotkeys.Repo.CommitWithAutoStage" xml:space="preserve">Alle Änderungen stagen und committen</x:String>
<x:String x:Key="Text.Hotkeys.Repo.CreateBranchOnCommit" xml:space="preserve">Neuen Branch basierend auf ausgewählten Commit erstellen</x:String>
<x:String x:Key="Text.Hotkeys.Repo.DiscardSelected" xml:space="preserve">Ausgewählte Änderungen verwerfen</x:String> <x:String x:Key="Text.Hotkeys.Repo.DiscardSelected" xml:space="preserve">Ausgewählte Änderungen verwerfen</x:String>
<x:String x:Key="Text.Hotkeys.Repo.Fetch" xml:space="preserve">Fetch, wird direkt ausgeführt</x:String>
<x:String x:Key="Text.Hotkeys.Repo.GoHome" xml:space="preserve">Dashboard Modus (Standard)</x:String> <x:String x:Key="Text.Hotkeys.Repo.GoHome" xml:space="preserve">Dashboard Modus (Standard)</x:String>
<x:String x:Key="Text.Hotkeys.Repo.Pull" xml:space="preserve">Pull, wird direkt ausgeführt</x:String>
<x:String x:Key="Text.Hotkeys.Repo.Push" xml:space="preserve">Push, wird direkt ausgeführt</x:String>
<x:String x:Key="Text.Hotkeys.Repo.Refresh" xml:space="preserve">Erzwinge Neuladen des Repositorys</x:String> <x:String x:Key="Text.Hotkeys.Repo.Refresh" xml:space="preserve">Erzwinge Neuladen des Repositorys</x:String>
<x:String x:Key="Text.Hotkeys.Repo.StageOrUnstageSelected" xml:space="preserve">Ausgewählte Änderungen stagen/unstagen</x:String> <x:String x:Key="Text.Hotkeys.Repo.StageOrUnstageSelected" xml:space="preserve">Ausgewählte Änderungen stagen/unstagen</x:String>
<x:String x:Key="Text.Hotkeys.Repo.OpenSearchCommits" xml:space="preserve">Commit-Suchmodus</x:String> <x:String x:Key="Text.Hotkeys.Repo.OpenSearchCommits" xml:space="preserve">Commit-Suchmodus</x:String>
@ -389,6 +395,8 @@
<x:String x:Key="Text.InteractiveRebase" xml:space="preserve">Interaktiver Rebase</x:String> <x:String x:Key="Text.InteractiveRebase" xml:space="preserve">Interaktiver Rebase</x:String>
<x:String x:Key="Text.InteractiveRebase.Target" xml:space="preserve">Ziel Branch:</x:String> <x:String x:Key="Text.InteractiveRebase.Target" xml:space="preserve">Ziel Branch:</x:String>
<x:String x:Key="Text.InteractiveRebase.On" xml:space="preserve">Auf:</x:String> <x:String x:Key="Text.InteractiveRebase.On" xml:space="preserve">Auf:</x:String>
<x:String x:Key="Text.IssueLinkCM.OpenInBrowser" xml:space="preserve">In Browser öffnen</x:String>
<x:String x:Key="Text.IssueLinkCM.CopyLink" xml:space="preserve">Link kopieren</x:String>
<x:String x:Key="Text.Launcher.Error" xml:space="preserve">FEHLER</x:String> <x:String x:Key="Text.Launcher.Error" xml:space="preserve">FEHLER</x:String>
<x:String x:Key="Text.Launcher.Info" xml:space="preserve">INFO</x:String> <x:String x:Key="Text.Launcher.Info" xml:space="preserve">INFO</x:String>
<x:String x:Key="Text.Merge" xml:space="preserve">Branch mergen</x:String> <x:String x:Key="Text.Merge" xml:space="preserve">Branch mergen</x:String>
@ -429,6 +437,9 @@
<x:String x:Key="Text.Preference.AI.Model" xml:space="preserve">Modell</x:String> <x:String x:Key="Text.Preference.AI.Model" xml:space="preserve">Modell</x:String>
<x:String x:Key="Text.Preference.Appearance" xml:space="preserve">DARSTELLUNG</x:String> <x:String x:Key="Text.Preference.Appearance" xml:space="preserve">DARSTELLUNG</x:String>
<x:String x:Key="Text.Preference.Appearance.DefaultFont" xml:space="preserve">Standardschriftart</x:String> <x:String x:Key="Text.Preference.Appearance.DefaultFont" xml:space="preserve">Standardschriftart</x:String>
<x:String x:Key="Text.Preference.Appearance.FontSize" xml:space="preserve">Schriftgröße</x:String>
<x:String x:Key="Text.Preference.Appearance.FontSize.Default" xml:space="preserve">Standard</x:String>
<x:String x:Key="Text.Preference.Appearance.FontSize.Editor" xml:space="preserve">Texteditor</x:String>
<x:String x:Key="Text.Preference.Appearance.MonospaceFont" xml:space="preserve">Monospace-Schriftart</x:String> <x:String x:Key="Text.Preference.Appearance.MonospaceFont" xml:space="preserve">Monospace-Schriftart</x:String>
<x:String x:Key="Text.Preference.Appearance.OnlyUseMonoFontInEditor" xml:space="preserve">Verwende die Monospace-Schriftart nur im Texteditor</x:String> <x:String x:Key="Text.Preference.Appearance.OnlyUseMonoFontInEditor" xml:space="preserve">Verwende die Monospace-Schriftart nur im Texteditor</x:String>
<x:String x:Key="Text.Preference.Appearance.Theme" xml:space="preserve">Design</x:String> <x:String x:Key="Text.Preference.Appearance.Theme" xml:space="preserve">Design</x:String>

View file

@ -168,12 +168,13 @@
<Setter Property="TextBlock.TextDecorations" Value=""/> <Setter Property="TextBlock.TextDecorations" Value=""/>
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate> <ControlTemplate>
<Grid Effect="drop-shadow(0 0 8 #80000000)"> <Grid Effect="drop-shadow(0 0 8 #30000000)">
<Border Margin="8" <Border Margin="8"
Padding="8,6" Padding="8,6"
CornerRadius="4" CornerRadius="4"
Background="{DynamicResource Brush.Popup}" Background="{DynamicResource Brush.Popup}"
BorderThickness="0" BorderBrush="{DynamicResource Brush.Border2}"
BorderThickness="1"
MaxWidth="{TemplateBinding MaxWidth}" MaxWidth="{TemplateBinding MaxWidth}"
MinHeight="{TemplateBinding MinHeight}" MinHeight="{TemplateBinding MinHeight}"
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"> HorizontalAlignment="{TemplateBinding HorizontalAlignment}">

View file

@ -169,6 +169,11 @@ namespace SourceGit.ViewModels
SearchChangeFilter = string.Empty; SearchChangeFilter = string.Empty;
} }
public Models.Commit GetParent(string sha)
{
return new Commands.QuerySingleCommit(_repo.FullPath, sha).Result();
}
public List<Models.Object> GetRevisionFilesUnderFolder(string parentFolder) public List<Models.Object> GetRevisionFilesUnderFolder(string parentFolder)
{ {
return new Commands.QueryRevisionObjects(_repo.FullPath, _commit.SHA, parentFolder).Result(); return new Commands.QueryRevisionObjects(_repo.FullPath, _commit.SHA, parentFolder).Result();

View file

@ -117,7 +117,28 @@
TextDecorations="Underline" TextDecorations="Underline"
Cursor="Hand" Cursor="Hand"
Margin="0,0,16,0" Margin="0,0,16,0"
PointerPressed="OnSHAPressed"/> PointerEntered="OnSHAPointerEntered"
PointerPressed="OnSHAPressed">
<TextBlock.Styles>
<Style Selector="ToolTip">
<Setter Property="MaxWidth" Value="600"/>
</Style>
</TextBlock.Styles>
<TextBlock.DataTemplates>
<DataTemplate DataType="m:Commit">
<StackPanel MinWidth="400" Orientation="Vertical">
<Grid ColumnDefinitions="Auto,*,Auto">
<v:Avatar Grid.Column="0" Width="16" Height="16" VerticalAlignment="Center" IsHitTestVisible="False" User="{Binding Author}"/>
<TextBlock Grid.Column="1" Classes="primary" Text="{Binding Author.Name}" Margin="8,0,0,0"/>
<TextBlock Grid.Column="2" Classes="primary" Text="{Binding CommitterTimeStr}" Foreground="{DynamicResource Brush.FG2}" Margin="8,0,0,0"/>
</Grid>
<TextBlock Classes="primary" Margin="0,8,0,0" Text="{Binding Subject}" TextWrapping="Wrap"/>
</StackPanel>
</DataTemplate>
</TextBlock.DataTemplates>
</TextBlock>
</DataTemplate> </DataTemplate>
</ItemsControl.ItemTemplate> </ItemsControl.ItemTemplate>
</ItemsControl> </ItemsControl>

View file

@ -1,3 +1,5 @@
using System.Threading.Tasks;
using Avalonia; using Avalonia;
using Avalonia.Collections; using Avalonia.Collections;
using Avalonia.Controls; using Avalonia.Controls;
@ -113,6 +115,29 @@ namespace SourceGit.Views
e.Handled = true; e.Handled = true;
} }
private async void OnSHAPointerEntered(object sender, PointerEventArgs e)
{
if (DataContext is ViewModels.CommitDetail detail && sender is Control { DataContext: string sha } ctl)
{
var tooltip = ToolTip.GetTip(ctl);
if (tooltip is Models.Commit commit && commit.SHA == sha)
{
ToolTip.SetIsOpen(ctl, true);
}
else
{
var c = await Task.Run(() => detail.GetParent(sha));
if (c != null)
{
ToolTip.SetTip(ctl, c);
ToolTip.SetIsOpen(ctl, true);
}
}
}
e.Handled = true;
}
private void OnSHAPressed(object sender, PointerPressedEventArgs e) private void OnSHAPressed(object sender, PointerPressedEventArgs e)
{ {
if (DataContext is ViewModels.CommitDetail detail && sender is Control { DataContext: string sha }) if (DataContext is ViewModels.CommitDetail detail && sender is Control { DataContext: string sha })