mirror of
https://fastgit.cc/github.com/sourcegit-scm/sourcegit
synced 2026-04-21 05:10:25 +08:00
feature: show uncommitted changes count for submodule (#2264)
Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
@@ -39,5 +39,6 @@ namespace SourceGit.Models
|
||||
{
|
||||
public Commit Commit { get; set; } = null;
|
||||
public CommitFullMessage FullMessage { get; set; } = null;
|
||||
public int UncommittedChanges { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,6 +372,7 @@
|
||||
<x:String x:Key="Text.Diff.Submodule" xml:space="preserve">SUBMODULE</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.Deleted" xml:space="preserve">DELETED</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.New" xml:space="preserve">NEW</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.UncommittedChanges" xml:space="preserve">+ {0} Uncommitted Changes</x:String>
|
||||
<x:String x:Key="Text.Diff.SwapCommits" xml:space="preserve">Swap</x:String>
|
||||
<x:String x:Key="Text.Diff.SyntaxHighlight" xml:space="preserve">Syntax Highlighting</x:String>
|
||||
<x:String x:Key="Text.Diff.ToggleWordWrap" xml:space="preserve">Line Word Wrap</x:String>
|
||||
|
||||
@@ -376,6 +376,7 @@
|
||||
<x:String x:Key="Text.Diff.Submodule" xml:space="preserve">子模块</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.Deleted" xml:space="preserve">删除</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.New" xml:space="preserve">新增</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.UncommittedChanges" xml:space="preserve">+ {0} 项未提交变更</x:String>
|
||||
<x:String x:Key="Text.Diff.SwapCommits" xml:space="preserve">交换比对双方</x:String>
|
||||
<x:String x:Key="Text.Diff.SyntaxHighlight" xml:space="preserve">语法高亮</x:String>
|
||||
<x:String x:Key="Text.Diff.ToggleWordWrap" xml:space="preserve">自动换行</x:String>
|
||||
|
||||
@@ -376,6 +376,7 @@
|
||||
<x:String x:Key="Text.Diff.Submodule" xml:space="preserve">子模組</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.Deleted" xml:space="preserve">已刪除</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.New" xml:space="preserve">新增</x:String>
|
||||
<x:String x:Key="Text.Diff.Submodule.UncommittedChanges" xml:space="preserve">+ {0} 項未提交變更</x:String>
|
||||
<x:String x:Key="Text.Diff.SwapCommits" xml:space="preserve">交換比對雙方</x:String>
|
||||
<x:String x:Key="Text.Diff.SyntaxHighlight" xml:space="preserve">語法上色</x:String>
|
||||
<x:String x:Key="Text.Diff.ToggleWordWrap" xml:space="preserve">自動換行</x:String>
|
||||
|
||||
@@ -291,6 +291,16 @@ namespace SourceGit.ViewModels
|
||||
|
||||
private async Task<Models.RevisionSubmodule> QuerySubmoduleRevisionAsync(string repo, string sha)
|
||||
{
|
||||
if (!File.Exists(Path.Combine(repo, ".git")))
|
||||
return new Models.RevisionSubmodule() { Commit = new Models.Commit() { SHA = sha } };
|
||||
|
||||
var uncommittedChangesCount = 0;
|
||||
if (sha.EndsWith("-dirty", StringComparison.Ordinal))
|
||||
{
|
||||
sha = sha.Substring(0, sha.Length - 6);
|
||||
uncommittedChangesCount = await new Commands.CountLocalChanges(repo, true).GetResultAsync().ConfigureAwait(false);
|
||||
}
|
||||
|
||||
var commit = await new Commands.QuerySingleCommit(repo, sha).GetResultAsync().ConfigureAwait(false);
|
||||
if (commit == null)
|
||||
return new Models.RevisionSubmodule() { Commit = new Models.Commit() { SHA = sha } };
|
||||
@@ -299,7 +309,8 @@ namespace SourceGit.ViewModels
|
||||
return new Models.RevisionSubmodule()
|
||||
{
|
||||
Commit = commit,
|
||||
FullMessage = new Models.CommitFullMessage { Message = body }
|
||||
FullMessage = new Models.CommitFullMessage { Message = body },
|
||||
UncommittedChanges = uncommittedChangesCount
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -321,7 +321,15 @@
|
||||
<ContentControl Content="{Binding New}">
|
||||
<ContentControl.DataTemplates>
|
||||
<DataTemplate DataType="m:RevisionSubmodule">
|
||||
<v:CommitBaseInfo Margin="0,4,8,6" Content="{Binding Commit}" FullMessage="{Binding FullMessage}"/>
|
||||
<StackPanel Orientation="Vertical">
|
||||
<TextBlock Margin="0,8,0,4"
|
||||
HorizontalAlignment="Center"
|
||||
Foreground="OrangeRed"
|
||||
FontFamily="{DynamicResource Fonts.Monospace}"
|
||||
Text="{Binding UncommittedChanges, Converter={x:Static c:StringConverters.FormatByResourceKey}, ConverterParameter='Diff.Submodule.UncommittedChanges'}"
|
||||
IsVisible="{Binding UncommittedChanges, Converter={x:Static c:IntConverters.IsGreaterThanZero}}"/>
|
||||
<v:CommitBaseInfo Margin="0,4,8,6" Content="{Binding Commit}" FullMessage="{Binding FullMessage}"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ContentControl.DataTemplates>
|
||||
</ContentControl>
|
||||
|
||||
Reference in New Issue
Block a user