From faffba09c80789dc0c0b86e2333ce9c50b0e79f2 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 21 Feb 2024 12:26:09 +0800 Subject: [PATCH] fix: compatible with un-inited submodule --- src/Commands/QuerySubmodules.cs | 16 ++++++++++++---- src/ViewModels/Repository.cs | 8 +++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Commands/QuerySubmodules.cs b/src/Commands/QuerySubmodules.cs index 0013ff49..8a581f93 100644 --- a/src/Commands/QuerySubmodules.cs +++ b/src/Commands/QuerySubmodules.cs @@ -3,7 +3,8 @@ using System.Text.RegularExpressions; namespace SourceGit.Commands { public class QuerySubmodules : Command { - private readonly Regex REG_FORMAT = new Regex(@"^[\-\+ ][0-9a-f]+\s(.*)\s\(.*\)$"); + private readonly Regex REG_FORMAT1 = new Regex(@"^[\-\+ ][0-9a-f]+\s(.*)\s\(.*\)$"); + private readonly Regex REG_FORMAT2 = new Regex(@"^[\-\+ ][0-9a-f]+\s(.*)$"); public QuerySubmodules(string repo) { WorkingDirectory = repo; @@ -17,9 +18,16 @@ namespace SourceGit.Commands { } protected override void OnReadline(string line) { - var match = REG_FORMAT.Match(line); - if (!match.Success) return; - _submodules.Add(match.Groups[1].Value); + var match = REG_FORMAT1.Match(line); + if (match.Success) { + _submodules.Add(match.Groups[1].Value); + return; + } + + match = REG_FORMAT2.Match(line); + if (match.Success) { + _submodules.Add(match.Groups[1].Value); + } } private List _submodules = new List(); diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs index 636921d3..ede3624e 100644 --- a/src/ViewModels/Repository.cs +++ b/src/ViewModels/Repository.cs @@ -444,8 +444,10 @@ namespace SourceGit.ViewModels { var commits = new Commands.QueryCommits(FullPath, limits).Result(); Dispatcher.UIThread.Invoke(() => { - _histories.IsLoading = false; - _histories.Commits = commits; + if (_histories != null) { + _histories.IsLoading = false; + _histories.Commits = commits; + } }); } @@ -488,7 +490,7 @@ namespace SourceGit.ViewModels { public void RefreshStashes() { var stashes = new Commands.QueryStashes(FullPath).Result(); Dispatcher.UIThread.Invoke(() => { - _stashesPage.Stashes = stashes; + if (_stashesPage != null) _stashesPage.Stashes = stashes; OnPropertyChanged(nameof(StashesCount)); }); }