Git Status displayed with state grouping

This commit is contained in:
Martín Lucas Golini
2024-01-18 23:54:12 -03:00
parent ff40471a45
commit 948ff5a590
6 changed files with 170 additions and 24 deletions

View File

@@ -263,6 +263,7 @@ std::string Git::inSubModule( const std::string& file, const std::string& projec
Git::Status Git::status( bool recurseSubmodules, const std::string& projectDir ) {
static constexpr auto DIFF_CMD = "diff --numstat";
static constexpr auto DIFF_STAGED_CMD = "diff --numstat --staged";
static constexpr auto STATUS_CMD = "-c color.status=never status -b -u -s";
Status s;
std::string buf;
@@ -327,11 +328,17 @@ Git::Status Git::status( bool recurseSubmodules, const std::string& projectDir )
parseNumStat();
git( DIFF_STAGED_CMD, projectDir, buf );
parseNumStat();
bool submodules = hasSubmodules( projectDir );
if ( recurseSubmodules && submodules ) {
gitSubmodules( DIFF_CMD, projectDir, buf );
parseNumStat();
gitSubmodules( DIFF_STAGED_CMD, projectDir, buf );
parseNumStat();
}
bool modifiedSubmodule = false;