# 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;