# # # patch "src/monotone/MonotoneManager.cpp" # from [54ff66e7fa219e7ed856b7eaa17f8de5773e1494] # to [fe8c65ef5d365f3742c3a5acb220c4d759322dfc] # ============================================================ --- src/monotone/MonotoneManager.cpp 54ff66e7fa219e7ed856b7eaa17f8de5773e1494 +++ src/monotone/MonotoneManager.cpp fe8c65ef5d365f3742c3a5acb220c4d759322dfc @@ -387,13 +387,10 @@ QString MonotoneManager::getInterfaceVer If a string addition ("flag") is supplied to a particular argument, a version without such a flag is considered newer than a version with - such a flag, i.e. 0.9dev < 0.9, but 0.9dev > 0.8. + such a flag, i.e. 0.9dev < 0.9, but 0.9dev > 0.8. Also, if both + versions contain a flag on the same position, these flags are string- + compared, i.e. 0.9 > 0.9rc2 > 0.9rc1 > 0.9dev > 0.8 - Of course we can't handle anything fancy like RC (release candidate) - numbering with this, but for now neither monotone nor guitone apply such - a numbering and it could easily be circumvented by separating the RC - numbering with another dot, like 0.9rc.1, 0.9rc.2, aso. - \sa checkInterfaceVersion() */ int MonotoneManager::versionCompare(const QString & left, const QString & right) @@ -410,28 +407,28 @@ int MonotoneManager::versionCompare(cons for (int i=0, j=maxCount; i r || (l == r && !lFlag && rFlag)) + if (l > r || (l == r && (lFlag.isEmpty() || lFlag > rFlag))) return 1; - if (l < r || (l == r && lFlag && !rFlag)) + if (l < r || (l == r && (rFlag.isEmpty() || rFlag > lFlag))) return -1; I(false);