diff --git a/git/git_client.cpp b/git/git_client.cpp index 403c987..a45e9db 100644 --- a/git/git_client.cpp +++ b/git/git_client.cpp @@ -165,13 +165,7 @@ std::optional GitClient::gitDiff(QString const &commits) { std::optional GitClient::gitFetch() { if (QDir(m_customerRepository).exists()) { - // TODO - UpdateStatus status (UPDATE_STATUS::GIT_FETCH_UPDATES, "GIT FETCH UPDATES"); - qInfo() << status; - - //emit m_worker->sendCmdEventToIsmas( - // m_worker->getIsmasClient().updateOfPSAContinues( - // "GIT FETCH UPDATES", status.m_statusDescription)); + qCritical() << "BRANCH NAME" << m_branchName; Command c("git fetch"); if (c.execute(m_customerRepository)) { @@ -179,36 +173,51 @@ std::optional GitClient::gitFetch() { if (!s.isEmpty()) { QStringList lines = Update::split(s, '\n'); if (!lines.empty()) { - // 409f198..6c22726 zg1/zone1 -> origin/zg1/zone1 - static QRegularExpression re("(^\\s*)([0-9A-Fa-f]+..[0-9A-Fa-f]+)(.*$)"); - QRegularExpressionMatch match = re.match(lines.last()); - if (match.hasMatch()) { - if (re.captureCount() == 3) { // start with full match (0), then the other 3 matches - // TODO - status = UpdateStatus(UPDATE_STATUS::GIT_FETCH_UPDATES_REQUEST_SUCCESS, - QString("GIT SUCCESSFULLY FETCHED ") + m_customerRepository); - qInfo() << status; - - //emit m_worker->sendCmdEventToIsmas( - // m_worker->getIsmasClient().updateOfPSAContinues( - // "GIT_FETCH_UPDATES SUCCESS", status.m_statusDescription)); - - return match.captured(2); - } else { - qCritical() << "ERROR WRONG CAPTURE COUNT FOR 'GIT FETCH'" << re.captureCount(); + int zoneNr = Utils::read1stLineOfFile("/mnt/system_data/zone_nr"); + m_branchName = (zoneNr != 0) ? QString("zg1/zone%1").arg(zoneNr) : "master"; + // lines can look like this: + // From https://git.mimbach49.de/GerhardHoffmann/customer_281 + // 41ec581..5d25ac3 master -> origin/master + // ff10f57..43530a1 zg1/zone1 -> origin/zg1/zone1 + // 6ed893f..5d9882c zg1/zone2 -> origin/zg1/zone2 + // 4384d17..77045d8 zg1/zone3 -> origin/zg1/zone3 + // 89d2812..36a0d74 zg1/zone5 -> origin/zg1/zone5 + bool found = false; + for (int i=0; i < lines.size(); ++i) { + if (lines.at(i).contains(m_branchName)) { + found = true; + // 409f198..6c22726 zg1/zone1 -> origin/zg1/zone1 + static QRegularExpression re("(^\\s*)([0-9A-Fa-f]+..[0-9A-Fa-f]+)(.*$)"); + QRegularExpressionMatch match = re.match(lines.at(i)); + if (match.hasMatch()) { + if (re.captureCount() == 3) { // start with full match (0), then the other 3 matches + return match.captured(2); + } else { + emit m_worker->showErrorMessage("git fetch", + QString("(wrong cap-count (%1)").arg(re.captureCount())); + } + } else { + emit m_worker->showErrorMessage("git fetch", + "regex-match for commits"); + } } - } else { - qCritical() << "ERROR NO MATCH OF COMMITS FOR 'GIT FETCH'"; + } + if (!found) { + emit m_worker->showErrorMessage("git fetch", + QString("unkown branch name ") + m_branchName); } } else { - qCritical() << "ERROR WRONG FORMAT FOR RESULT FOR 'GIT FETCH'" << s; + emit m_worker->showErrorMessage("git fetch", + QString("wrong format for result of 'git fetch' ") + s); } } else { - qCritical() << "ERROR EMPTY RESULT FROM 'GIT FETCH'"; + emit m_worker->showErrorMessage("git fetch", + "empty result for 'git fetch'"); } } } else { - qCritical() << "ERROR" << m_customerRepository << "DOES NOT EXIST"; + emit m_worker->showErrorMessage("git fetch", + QString("repository ") + m_customerRepository + " does not exist"); } return std::nullopt; }