mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-22 20:37:19 -08:00
optimize: better supports for LFS object
This commit is contained in:
parent
d0e80be79f
commit
59b7fd8c61
2 changed files with 18 additions and 4 deletions
|
@ -5,7 +5,9 @@ using System.Text.RegularExpressions;
|
||||||
namespace SourceGit.Commands {
|
namespace SourceGit.Commands {
|
||||||
public class Diff : Command {
|
public class Diff : Command {
|
||||||
private static readonly Regex REG_INDICATOR = new Regex(@"^@@ \-(\d+),?\d* \+(\d+),?\d* @@");
|
private static readonly Regex REG_INDICATOR = new Regex(@"^@@ \-(\d+),?\d* \+(\d+),?\d* @@");
|
||||||
private static readonly string PREFIX_LFS = " version https://git-lfs.github.com/spec/";
|
private static readonly string PREFIX_LFS_NEW = "+version https://git-lfs.github.com/spec/";
|
||||||
|
private static readonly string PREFIX_LFS_DEL = "-version https://git-lfs.github.com/spec/";
|
||||||
|
private static readonly string PREFIX_LFS_MODIFY = " version https://git-lfs.github.com/spec/";
|
||||||
|
|
||||||
public Diff(string repo, Models.DiffOption opt) {
|
public Diff(string repo, Models.DiffOption opt) {
|
||||||
WorkingDirectory = repo;
|
WorkingDirectory = repo;
|
||||||
|
@ -77,9 +79,21 @@ namespace SourceGit.Commands {
|
||||||
|
|
||||||
var ch = line[0];
|
var ch = line[0];
|
||||||
if (ch == '-') {
|
if (ch == '-') {
|
||||||
|
if (_oldLine == 1 && _newLine == 0 && line.StartsWith(PREFIX_LFS_DEL, StringComparison.Ordinal)) {
|
||||||
|
_result.IsLFS = true;
|
||||||
|
_result.LFSDiff = new Models.LFSDiff();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_deleted.Add(new Models.TextDiffLine(Models.TextDiffLineType.Deleted, line.Substring(1), _oldLine, 0));
|
_deleted.Add(new Models.TextDiffLine(Models.TextDiffLineType.Deleted, line.Substring(1), _oldLine, 0));
|
||||||
_oldLine++;
|
_oldLine++;
|
||||||
} else if (ch == '+') {
|
} else if (ch == '+') {
|
||||||
|
if (_oldLine == 0 && _newLine == 1 && line.StartsWith(PREFIX_LFS_NEW, StringComparison.Ordinal)) {
|
||||||
|
_result.IsLFS = true;
|
||||||
|
_result.LFSDiff = new Models.LFSDiff();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_added.Add(new Models.TextDiffLine(Models.TextDiffLineType.Added, line.Substring(1), 0, _newLine));
|
_added.Add(new Models.TextDiffLine(Models.TextDiffLineType.Added, line.Substring(1), 0, _newLine));
|
||||||
_newLine++;
|
_newLine++;
|
||||||
} else if (ch != '\\') {
|
} else if (ch != '\\') {
|
||||||
|
@ -90,7 +104,7 @@ namespace SourceGit.Commands {
|
||||||
_newLine = int.Parse(match.Groups[2].Value);
|
_newLine = int.Parse(match.Groups[2].Value);
|
||||||
_result.TextDiff.Lines.Add(new Models.TextDiffLine(Models.TextDiffLineType.Indicator, line, 0, 0));
|
_result.TextDiff.Lines.Add(new Models.TextDiffLine(Models.TextDiffLineType.Indicator, line, 0, 0));
|
||||||
} else {
|
} else {
|
||||||
if (line.StartsWith(PREFIX_LFS)) {
|
if (_oldLine == 1 && _newLine == 1 && line.StartsWith(PREFIX_LFS_MODIFY, StringComparison.Ordinal)) {
|
||||||
_result.IsLFS = true;
|
_result.IsLFS = true;
|
||||||
_result.LFSDiff = new Models.LFSDiff();
|
_result.LFSDiff = new Models.LFSDiff();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -72,7 +72,7 @@
|
||||||
<TextBlock Grid.Row="0" Grid.Column="1" Classes="monospace" Text="{Binding OldSize}" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right" FontSize="16" Margin="8,0"/>
|
<TextBlock Grid.Row="0" Grid.Column="1" Classes="monospace" Text="{Binding OldSize}" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right" FontSize="16" Margin="8,0"/>
|
||||||
<TextBlock Grid.Row="0" Grid.Column="2" Classes="monospace" Text="{DynamicResource Text.Bytes}" Foreground="{DynamicResource Brush.FG2}" FontSize="16"/>
|
<TextBlock Grid.Row="0" Grid.Column="2" Classes="monospace" Text="{DynamicResource Text.Bytes}" Foreground="{DynamicResource Brush.FG2}" FontSize="16"/>
|
||||||
|
|
||||||
<Border Grid.Row="1" Grid.Column="0" Height="16" Background="{DynamicResource Brush.Accent1}" CornerRadius="8" VerticalAlignment="Center">
|
<Border Grid.Row="1" Grid.Column="0" Height="16" Background="Green" CornerRadius="8" VerticalAlignment="Center">
|
||||||
<TextBlock Classes="monospace" Text="{DynamicResource Text.Diff.Binary.New}" Margin="8,0" FontSize="10"/>
|
<TextBlock Classes="monospace" Text="{DynamicResource Text.Diff.Binary.New}" Margin="8,0" FontSize="10"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
<TextBlock Grid.Row="0" Grid.Column="1" Classes="monospace" Text="{Binding Old.Size}" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right" FontSize="16" Margin="8,0"/>
|
<TextBlock Grid.Row="0" Grid.Column="1" Classes="monospace" Text="{Binding Old.Size}" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right" FontSize="16" Margin="8,0"/>
|
||||||
<TextBlock Grid.Row="0" Grid.Column="2" Classes="monospace" Text="{DynamicResource Text.Bytes}" Foreground="{DynamicResource Brush.FG2}" FontSize="16"/>
|
<TextBlock Grid.Row="0" Grid.Column="2" Classes="monospace" Text="{DynamicResource Text.Bytes}" Foreground="{DynamicResource Brush.FG2}" FontSize="16"/>
|
||||||
|
|
||||||
<Border Grid.Row="1" Grid.Column="0" Height="16" Background="{DynamicResource Brush.Accent1}" CornerRadius="8" VerticalAlignment="Center">
|
<Border Grid.Row="1" Grid.Column="0" Height="16" Background="Green" CornerRadius="8" VerticalAlignment="Center">
|
||||||
<TextBlock Classes="monospace" Text="{DynamicResource Text.Diff.Binary.New}" Margin="8,0" FontSize="10"/>
|
<TextBlock Classes="monospace" Text="{DynamicResource Text.Diff.Binary.New}" Margin="8,0" FontSize="10"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue