Skip to content

Commit c3cbb6d

Browse files
committed
fix: submodule diff missing commit message
1 parent 4ec93b9 commit c3cbb6d

File tree

3 files changed

+30
-8
lines changed

3 files changed

+30
-8
lines changed

src/Models/DiffResult.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -587,10 +587,16 @@ public class FileModeDiff
587587
public string New { get; set; } = string.Empty;
588588
}
589589

590+
public class SubmoduleRevision
591+
{
592+
public Commit Commit { get; set; } = null;
593+
public string FullMessage { get; set; } = string.Empty;
594+
}
595+
590596
public class SubmoduleDiff
591597
{
592-
public Commit Old { get; set; } = null;
593-
public Commit New { get; set; } = null;
598+
public SubmoduleRevision Old { get; set; } = null;
599+
public SubmoduleRevision New { get; set; } = null;
594600
}
595601

596602
public class DiffResult

src/ViewModels/DiffContext.cs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,12 +131,12 @@ private void LoadDiffContent()
131131
if (line.Type == Models.TextDiffLineType.Added)
132132
{
133133
var sha = line.Content.Substring("Subproject commit ".Length);
134-
submoduleDiff.New = new Commands.QuerySingleCommit(submoduleRoot, sha).Result() ?? new Models.Commit() { SHA = sha };
134+
submoduleDiff.New = QuerySubmoduleRevision(submoduleRoot, sha);
135135
}
136136
else if (line.Type == Models.TextDiffLineType.Deleted)
137137
{
138138
var sha = line.Content.Substring("Subproject commit ".Length);
139-
submoduleDiff.Old = new Commands.QuerySingleCommit(submoduleRoot, sha).Result() ?? new Models.Commit() { SHA = sha };
139+
submoduleDiff.Old = QuerySubmoduleRevision(submoduleRoot, sha);
140140
}
141141
}
142142
rs = submoduleDiff;
@@ -219,6 +219,22 @@ private void LoadDiffContent()
219219
return size > 0 ? (new Bitmap(stream), size) : (null, size);
220220
}
221221

222+
private Models.SubmoduleRevision QuerySubmoduleRevision(string repo, string sha)
223+
{
224+
var commit = new Commands.QuerySingleCommit(repo, sha).Result();
225+
if (commit != null)
226+
{
227+
var body = new Commands.QueryCommitFullMessage(repo, sha).Result();
228+
return new Models.SubmoduleRevision() { Commit = commit, FullMessage = body };
229+
}
230+
231+
return new Models.SubmoduleRevision()
232+
{
233+
Commit = new Models.Commit() { SHA = sha },
234+
FullMessage = string.Empty,
235+
};
236+
}
237+
222238
private static readonly HashSet<string> IMG_EXTS = new HashSet<string>()
223239
{
224240
".ico", ".bmp", ".jpg", ".png", ".jpeg"

src/Views/DiffView.axaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@
151151
<Border IsVisible="{Binding Old, Converter={x:Static ObjectConverters.IsNotNull}}">
152152
<ContentControl Content="{Binding Old}">
153153
<ContentControl.DataTemplates>
154-
<DataTemplate DataType="m:Commit">
154+
<DataTemplate DataType="m:SubmoduleRevision">
155155
<Border Margin="0,0,0,8" BorderThickness="1" BorderBrush="{DynamicResource Brush.Border1}" Background="{DynamicResource Brush.Window}">
156-
<v:CommitBaseInfo MaxHeight="256" Margin="0,0,0,4" CanNavigate="False" Content="{Binding}"/>
156+
<v:CommitBaseInfo MaxHeight="256" Margin="0,0,0,4" CanNavigate="False" Content="{Binding Commit}" Message="{Binding FullMessage}"/>
157157
</Border>
158158
</DataTemplate>
159159
</ContentControl.DataTemplates>
@@ -167,7 +167,7 @@
167167
<Path Width="16" Height="16" Data="{StaticResource Icons.DoubleDown}" HorizontalAlignment="Center" IsVisible="{Binding Old, Converter={x:Static ObjectConverters.IsNotNull}}"/>
168168

169169
<Border Margin="0,8,0,0" BorderThickness="1" BorderBrush="Green" Background="{DynamicResource Brush.Window}">
170-
<v:CommitBaseInfo MaxHeight="256" Margin="0,0,0,4" CanNavigate="False" Content="{Binding New}"/>
170+
<v:CommitBaseInfo MaxHeight="256" Margin="0,0,0,4" CanNavigate="False" Content="{Binding New.Commit}" Message="{Binding New.FullMessage}"/>
171171
</Border>
172172
</StackPanel>
173173
</ScrollViewer>
@@ -239,7 +239,7 @@
239239
UseSideBySideDiff="{Binding Source={x:Static vm:Preference.Instance}, Path=UseSideBySideDiff, Mode=OneWay}"/>
240240
</DataTemplate>
241241

242-
<!-- No or only EOL changes -->
242+
<!-- Empty or only EOL changes -->
243243
<DataTemplate DataType="m:NoOrEOLChange">
244244
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
245245
<Path Width="64" Height="64" Data="{StaticResource Icons.Check}" Fill="{DynamicResource Brush.FG2}"/>

0 commit comments

Comments
 (0)