# HG changeset patch # User Chris Cannam # Date 1301323850 -3600 # Node ID 4d13cacb3e65a91549e8e68327c3e0c21d60d90d # Parent 5a93ae4667d644db04010d8e8f74ea24ad913f22 Add warning dialog if version of Mercurial discovered is too old diff -r 5a93ae4667d6 -r 4d13cacb3e65 src/mainwindow.cpp --- a/src/mainwindow.cpp Thu Mar 24 14:15:53 2011 +0000 +++ b/src/mainwindow.cpp Mon Mar 28 15:50:50 2011 +0100 @@ -219,8 +219,6 @@ void MainWindow::hgTest() { QStringList params; - //!!! should we test version output? Really we want at least 1.7.x - //!!! for options such as merge --tool params << "--version"; m_runner->requestAction(HgAction(ACT_TEST_HG, m_myDirPath, params)); } @@ -1980,7 +1978,24 @@ switch (action) { case ACT_TEST_HG: + { + QRegExp versionRE("^Mercurial.*version ([\\d+])\\.([\\d+])"); + int pos = versionRE.indexIn(output); + if (pos >= 0) { + int major = versionRE.cap(1).toInt(); + int minor = versionRE.cap(2).toInt(); + // We need v1.7 or newer + if (major < 1 || (major == 1 && minor < 7)) { + MoreInformationDialog::warning + (this, + tr("Newer Mercurial version required"), + tr("Newer Mercurial version required"), + tr("To use EasyMercurial, you should have at least Mercurial v1.7 installed.

The version found on this system (v%1.%2) does not support all of the features required by EasyMercurial.").arg(major).arg(minor), + output); + } + } break; + } case ACT_TEST_HG_EXT: break;