# # # patch "src/monotone/MonotoneUtil.cpp" # from [fb11750176e141b155068283c4b041958ea7a62b] # to [30f5e234eb795caa6bb55747a51036aa5afaa94d] # # patch "src/monotone/MonotoneUtil.h" # from [9364f0fee38d44cd3cc0d8f6f4dbf28e21d3db64] # to [a42494f54155101db9f71a84a32ca3cfb94f2645] # ============================================================ --- src/monotone/MonotoneUtil.cpp fb11750176e141b155068283c4b041958ea7a62b +++ src/monotone/MonotoneUtil.cpp 30f5e234eb795caa6bb55747a51036aa5afaa94d @@ -231,6 +231,33 @@ CertList MonotoneUtil::getCerts(const Da return certs; } +bool MonotoneUtil::createCert(const DatabaseFile & db, + const QString & revision, const QString & name, + const QString & value, const QString & key) +{ + MonotoneTaskPtr task(new MonotoneTask( + QStringList() << "cert" << revision << name << value, + QStringList() << "k" << key + )); + + runSynchronousDatabaseTask(db, task); + + if (!task->isFinished()) + { + C(QString("task '%1' aborted").arg(QString(task->getEncodedInput()))); + return false; + } + + if (task->getReturnCode() > 0) + { + C(QString("Couldn't create cert for revision %1: %2") + .arg(revision).arg(task->getLast(MonotoneTask::Error))); + return false; + } + + return true; +} + FileEntryList MonotoneUtil::getRevisionManifest(const DatabaseFile & db, const QString & revision) { MonotoneTaskPtr task(new MonotoneTask(QStringList() << "get_manifest_of" << revision)); ============================================================ --- src/monotone/MonotoneUtil.h 9364f0fee38d44cd3cc0d8f6f4dbf28e21d3db64 +++ src/monotone/MonotoneUtil.h a42494f54155101db9f71a84a32ca3cfb94f2645 @@ -37,6 +37,7 @@ public: static QString getBranchNameShort(const WorkspacePath &); static QStringList resolveSelector(const DatabaseFile &, const QString &); static CertList getCerts(const DatabaseFile &, const QString &); + static bool createCert(const DatabaseFile & db, const QString &, const QString &, const QString &, const QString &); static FileEntryList getRevisionManifest(const DatabaseFile &, const QString &); static QMap getPublicKeyMap(const DatabaseFile &); static QMap getPrivateKeyMap(const DatabaseFile &);