forked from qt-creator/qt-creator
Git - bugFix in submoduleList
it looks like submodule list in git config does not return paths. that is why I have direct reading of .gitmodules file now. Change-Id: I7f441d0b2e31ad7b73fbc8c05e5c9a9e0c84036c Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -1574,33 +1574,22 @@ QMap<QString,QString> GitClient::synchronousRemotesList(const QString &workingDi
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
QMap<QString,QString> GitClient::synchronousSubmoduleList(const QString &workingDirectory,
|
// function returns submodules in format path=url
|
||||||
QString *errorMessage)
|
QMap<QString,QString> GitClient::synchronousSubmoduleList(const QString &workingDirectory)
|
||||||
{
|
{
|
||||||
QStringList args;
|
|
||||||
QMap<QString,QString> result;
|
QMap<QString,QString> result;
|
||||||
args << QLatin1String("config") << QLatin1String("-l");
|
if (!QFile::exists(workingDirectory + QLatin1String("/.gitmodules")))
|
||||||
QByteArray outputText;
|
|
||||||
QByteArray errorText;
|
|
||||||
const bool rc = fullySynchronousGit(workingDirectory, args, &outputText, &errorText);
|
|
||||||
if (!rc) {
|
|
||||||
QString message = msgCannotRun(QLatin1String("git config -l"), workingDirectory, commandOutputFromLocal8Bit(errorText));
|
|
||||||
|
|
||||||
if (errorMessage)
|
|
||||||
*errorMessage = message;
|
|
||||||
else
|
|
||||||
outputWindow()->append(message);
|
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
QSettings gitmodulesFile(workingDirectory + QLatin1String("/.gitmodules"), QSettings::IniFormat);
|
||||||
|
|
||||||
|
foreach (const QString &submoduleGroup, gitmodulesFile.childGroups()) {
|
||||||
|
gitmodulesFile.beginGroup(submoduleGroup);
|
||||||
|
result.insertMulti(gitmodulesFile.value(QLatin1String("path")).toString(),
|
||||||
|
gitmodulesFile.value(QLatin1String("url")).toString());
|
||||||
|
gitmodulesFile.endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList outputList = commandOutputLinesFromLocal8Bit(outputText);
|
|
||||||
QString urlKey = QLatin1String(".url=");
|
|
||||||
foreach (const QString& line, outputList) {
|
|
||||||
if (line.startsWith(QLatin1String("submodule."))) {
|
|
||||||
result.insertMulti(line.mid(10, line.indexOf(urlKey) - 10),
|
|
||||||
line.mid(line.indexOf(urlKey, 10) + 5));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -198,8 +198,7 @@ public:
|
|||||||
|
|
||||||
QMap<QString,QString> synchronousRemotesList(const QString &workingDirectory,
|
QMap<QString,QString> synchronousRemotesList(const QString &workingDirectory,
|
||||||
QString *errorMessage = 0);
|
QString *errorMessage = 0);
|
||||||
QMap<QString,QString> synchronousSubmoduleList(const QString &workingDirectory,
|
QMap<QString,QString> synchronousSubmoduleList(const QString &workingDirectory);
|
||||||
QString *errorMessage = 0);
|
|
||||||
bool synchronousShow(const QString &workingDirectory, const QString &id,
|
bool synchronousShow(const QString &workingDirectory, const QString &id,
|
||||||
QString *output, QString *errorMessage);
|
QString *output, QString *errorMessage);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user