fix<Submodules>: compatible with un-inited submodule

This commit is contained in:
leo 2024-02-21 12:26:09 +08:00
parent f93ad7e9e2
commit faffba09c8
2 changed files with 17 additions and 7 deletions

View file

@ -3,7 +3,8 @@ using System.Text.RegularExpressions;
namespace SourceGit.Commands { namespace SourceGit.Commands {
public class QuerySubmodules : Command { 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) { public QuerySubmodules(string repo) {
WorkingDirectory = repo; WorkingDirectory = repo;
@ -17,9 +18,16 @@ namespace SourceGit.Commands {
} }
protected override void OnReadline(string line) { protected override void OnReadline(string line) {
var match = REG_FORMAT.Match(line); var match = REG_FORMAT1.Match(line);
if (!match.Success) return; if (match.Success) {
_submodules.Add(match.Groups[1].Value); _submodules.Add(match.Groups[1].Value);
return;
}
match = REG_FORMAT2.Match(line);
if (match.Success) {
_submodules.Add(match.Groups[1].Value);
}
} }
private List<string> _submodules = new List<string>(); private List<string> _submodules = new List<string>();

View file

@ -444,8 +444,10 @@ namespace SourceGit.ViewModels {
var commits = new Commands.QueryCommits(FullPath, limits).Result(); var commits = new Commands.QueryCommits(FullPath, limits).Result();
Dispatcher.UIThread.Invoke(() => { Dispatcher.UIThread.Invoke(() => {
_histories.IsLoading = false; if (_histories != null) {
_histories.Commits = commits; _histories.IsLoading = false;
_histories.Commits = commits;
}
}); });
} }
@ -488,7 +490,7 @@ namespace SourceGit.ViewModels {
public void RefreshStashes() { public void RefreshStashes() {
var stashes = new Commands.QueryStashes(FullPath).Result(); var stashes = new Commands.QueryStashes(FullPath).Result();
Dispatcher.UIThread.Invoke(() => { Dispatcher.UIThread.Invoke(() => {
_stashesPage.Stashes = stashes; if (_stashesPage != null) _stashesPage.Stashes = stashes;
OnPropertyChanged(nameof(StashesCount)); OnPropertyChanged(nameof(StashesCount));
}); });
} }