From 808afcfbb2d03220cab4d85a51c82c8c2737bfbe Mon Sep 17 00:00:00 2001 From: Petar Perisin <petar.perisin@gmail.com> Date: Tue, 7 May 2013 19:32:33 +0200 Subject: [PATCH] Git - made Clean List support submodules Change-Id: I106420e8492d64451eee3648800ce57a4de2bfb9 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> --- src/plugins/git/gitclient.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 13ac15ba6a5..6596c2a4131 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2029,7 +2029,6 @@ bool GitClient::synchronousShow(const QString &workingDirectory, const QString & // Retrieve list of files to be cleaned bool GitClient::cleanList(const QString &workingDirectory, const QString &flag, QStringList *files, QString *errorMessage) { - files->clear(); QStringList args; args << QLatin1String("clean") << QLatin1String("--dry-run") << flag; QByteArray outputText; @@ -2052,6 +2051,15 @@ bool GitClient::synchronousCleanList(const QString &workingDirectory, QStringLis { bool res = cleanList(workingDirectory, QLatin1String("-df"), files, errorMessage); res &= cleanList(workingDirectory, QLatin1String("-dXf"), ignoredFiles, errorMessage); + + SubmoduleDataMap submodules = submoduleList(workingDirectory); + foreach (const SubmoduleData &submodule, submodules) { + if (submodule.ignore != QLatin1String("all") + && submodule.ignore != QLatin1String("dirty")) { + res &= synchronousCleanList(workingDirectory + QLatin1Char('/') + submodule.dir, + files, ignoredFiles, errorMessage); + } + } return res; } -- GitLab