# # # patch "NEWS" # from [44e459356b27d94e5f3c70224057bc75123e2b69] # to [1e087a575ee909b0e667ad83dcd97f6630ff25b6] # # patch "guitone.pro" # from [ba431b080233a6831ab7c78c83fa6cbc35f6fa10] # to [357b1d79e4869690b7e60e437a4d765690ffbe4a] # # patch "res/forms/preferences.ui" # from [7a7571da041337f90d222a67051d0b363fb6b9b2] # to [6f90cf7783f03c267f1bff4be5c6cce4c8a1879d] # # patch "res/i18n/guitone_de.ts" # from [009f9cb8c240cf936fbff247089a2949f7d05643] # to [1ac99422749af61e6a8323f6fefad0bd01c7183a] # # patch "src/Guitone.cpp" # from [b92124f06a493927d5989833e0350e346d2b94ee] # to [22dcaeed1615785dd5370bab52797265d1634610] # # patch "src/monotone/MonotoneManager.cpp" # from [cb2c38e6c54d4a1c7cdb5936ee6fd7b4d929e4d6] # to [30ab167ee4bdb27ddb7255c8b0f52d01fef904c1] # # patch "src/monotone/MonotoneManager.h" # from [ca14810692315d4a9d58d2c220ecbd00a2e69e20] # to [a399ff054cb3b3eede2b51bbb1b4ef18a57b513a] # # patch "src/view/dialogs/Preferences.cpp" # from [62c7d6fe31de9db358bff248db6a939786347670] # to [e3b7d8f1a25f1d24124d6231e9553c983a979a82] # # patch "src/view/dialogs/Preferences.h" # from [158ed167709f8220efc4d958319c8a60da2eaa45] # to [4652f103fd3be0b712fba703ba2c35ed941b399f] # ============================================================ --- NEWS 44e459356b27d94e5f3c70224057bc75123e2b69 +++ NEWS 1e087a575ee909b0e667ad83dcd97f6630ff25b6 @@ -1,3 +1,16 @@ +2008-04-06 (0.7.1) + - new: possibility to suppress the upper version check which lets + guitone partially work with newer, yet untested versions of monotone; + the 0.7 development line currently only supports monotone version + 0.37 and 0.38 completly. + Now If you have monotone 0.39 or newer installed, you can still start + and work with guitone, but at your own risk. One thing that will f.e. + not work with 0.7.x and monotone >= 0.39 is the commit functionality. + If you need this, please stick to an earlier, supported version. + guitone 0.8 will, of course, support newer versions of monotone, but + I still have no release date set for this. + - bugfix: make guitone compile cleanly on Mac OS X 10.5 Leopard + 2008-01-16 (0.7) - new: possibility to display the history of a single file in chronological order: In the workspace view, right-click on any tracked file and hit ============================================================ --- guitone.pro ba431b080233a6831ab7c78c83fa6cbc35f6fa10 +++ guitone.pro 357b1d79e4869690b7e60e437a4d765690ffbe4a @@ -1,7 +1,7 @@ # # global version strings # -GUITONE_VERSION = "0.7" +GUITONE_VERSION = "0.7.1" MIN_MTN_INT_VERSION = "6.0" MAX_MTN_INT_VERSION = "7.0" @@ -225,6 +225,7 @@ macx { # add x86, ppc archs for universal release builds CONFIG(release, debug|release):CONFIG += x86 ppc + QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.4u.sdk } ============================================================ --- res/forms/preferences.ui 7a7571da041337f90d222a67051d0b363fb6b9b2 +++ res/forms/preferences.ui 6f90cf7783f03c267f1bff4be5c6cce4c8a1879d @@ -5,8 +5,8 @@ 0 0 - 433 - 370 + 439 + 381 @@ -68,39 +68,9 @@ Path to monotone executable - - - 6 - - - 9 - - - 9 - - - 9 - - - 9 - - + + - - 6 - - - 0 - - - 0 - - - 0 - - - 0 - @@ -123,6 +93,13 @@ + + + + relaxed version check + + + @@ -132,96 +109,50 @@ Logging - - 6 - - - 9 - - - 9 - - - 9 - - - 9 - - - - 6 + + + enable console logging - - 0 + + true - - 0 + + + + + + enable file logging (%1) - - 0 + + + + + + 6 - - 0 - - + - enable console logging + Log level - - true - - - - enable file logging (%1) - - + - - - 6 + + + Qt::Horizontal - - 0 + + + 40 + 20 + - - 0 - - - 0 - - - 0 - - - - - Log level - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - + @@ -234,21 +165,6 @@ Miscellaneous - - 6 - - - 9 - - - 9 - - - 9 - - - 9 - ============================================================ --- res/i18n/guitone_de.ts 009f9cb8c240cf936fbff247089a2949f7d05643 +++ res/i18n/guitone_de.ts 1ac99422749af61e6a8323f6fefad0bd01c7183a @@ -1,6 +1,59 @@ + @default + + + Could not open database for reading + Konnte Datenbank nicht zum Lesen öffnen + + + + Database file not an SQLite 3 database + Datenbank ist keine SQLite 3-Datenbank + + + + SQLite database is not a monotone database or a database of an older, unsupported version of monotone + SQLite-Datenbank ist keine monotone-Datenbank oder eine Datenbank einer älteren, nicht unterstützten Version von monotone + + + + Monotone binary path not set + Pfad zur ausführbaren Datei von monotone nicht gesetzt + + + + Directory %1 does not exist + Verzeichnis %1 existiert nicht + + + + could not find _MTN directory + konnte _MTN-Verzeichnis nicht finden + + + + could not open _MTN/options for reading + konnte _MTN/options nicht zum Lesen öffnen + + + + file _MTN/options is empty + Datei _MTN/options ist leer + + + + could not parse basic_io from _MTN/options + konnte Format von _MTN/options nicht analysieren + + + + could not find database for workspace + konnte keine Datenbank für den Arbeitsbereich finden + + + About @@ -882,7 +935,7 @@ In jedem Fall sollte der derzeitige Arbe Guitone - + Error Fehler @@ -907,51 +960,51 @@ In jedem Fall sollte der derzeitige Arbe Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine Version von monotone, mit der guitone nicht arbeiten kann. Guitone benötigt ein monotone mit einer Interface-Version zwischen %2 und %3. Sie können die Interface-Version Ihrer monotone-Installation durch den Aufruf des Kommandos `mtn automate interface_version` in Erfahrung bringen. - + The path to the monotone binary is either invalid or points to a version of monotone with which guitone can't work with. Guitone requires monotone with an interface version between '%1' and '%2'. Your installation has the interface version '%3'. Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine Version von monotone, mit der guitone nicht arbeiten kann. Guitone benötigt ein monotone mit einer Interface-Version zwischen '%1' und '%2'. Ihre monotone-Installation hat die Interface-Version '%3'. - + Non-existant path '%1' Nicht-existierender Pfad '%1' - + Path is neither a file nor a directory Pfad ist weder eine Datei noch ein Verzeichnis - + Failed to load workspace Konnte Arbeitsbereich nicht laden - + The workspace could not be loaded: %1 Der Arbeitsbereich konnte nicht geladen werden: %1 - + Failed to load database Konnte Datenbank nicht laden - + The database could not be loaded: %1 Die Datenbank konnte nicht geladen werden: %1 - + No updates available Keine Aktualisierungen verfügbar - + Your version of guitone (%1) is already up-to-date. Ihre Version von guitone (%1) ist bereits aktuell. @@ -1996,92 +2049,92 @@ Die letzte Ausgabe war: MonotoneManager - + Could not open database for reading Konnte Datenbank nicht zum Lesen öffnen - + Database file not an SQLite 3 database Datenbank ist keine SQLite 3-Datenbank - + SQLite database is not a monotone database or a database of an older, unsupported version of monotone SQLite-Datenbank ist keine monotone-Datenbank oder eine Datenbank einer älteren, nicht unterstützten Version von monotone - + Monotone binary path not set Pfad zur ausführbaren Datei von monotone nicht gesetzt - + Directory %1 does not exist Verzeichnis %1 existiert nicht - + could not find _MTN directory konnte _MTN-Verzeichnis nicht finden - + could not open _MTN/options for reading konnte _MTN/options nicht zum Lesen öffnen - + file _MTN/options is empty Datei _MTN/options ist leer - + could not parse basic_io from _MTN/options konnte Format von _MTN/options nicht analysieren - + could not find database for workspace konnte keine Datenbank für den Arbeitsbereich finden - + failed to start Start fehlgeschlagen - + crashed abgestürzt - + timed out waiting for data Timeout während des Wartens auf Daten - + failed to read Lesen fehlgeschlagen - + failed to write Schreiben fehlgeschlagen - + unknown error unbekannter Fehler - + The monotone process for '%1' died (%2). If you think this is a bug in guitone, please report it to the author! Der monotone-Prozess für '%1' wurde beendet (%2). Wenn Sie glauben, dass dies ein Fehler in guitone ist, senden Sie bitte einen Problembericht an den Autor! - + Last error output was: @@ -2092,7 +2145,7 @@ Letzte Fehlerausgabe war: %1 - + Error Fehler @@ -2100,7 +2153,7 @@ Letzte Fehlerausgabe war: MonotoneThread - + The temporary directory '%1' contains a monotone workspace, which may lead to serious path resolution errors on execution. Its recommended you remove this workspace before you retry this again! Das temporäre Verzeichnis '%1' enthält einen monotone-Arbeitsbereich, welcher zu ernsten Fehlfunktionen bei der Ausführung dieses Programmes führen kann. Bitte entfernen Sie diesen Arbeitsbereich, bevor Sie diese Aktion erneut versuchen! @@ -2174,7 +2227,7 @@ Wenn Sie bereits ein Arbeitsverzeichnis Preferences - + Error Fehler @@ -2184,7 +2237,7 @@ Wenn Sie bereits ein Arbeitsverzeichnis Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine ältere Version von monotone. Guitone benötigt monotone Version %1 oder ein monotone mit einer Interface-Version %2 oder neuer. - + Notice Hinweis @@ -2194,12 +2247,12 @@ Wenn Sie bereits ein Arbeitsverzeichnis Sie müssen Ihren derzeitigen Arbeitsbereich oder guitone neu laden, um die neue monotone-Binary zu nutzen. - + Choose the monotone executable Wählen Sie die ausführbare Datei von monotone - + Binaries (mtn mtn.exe) Binärdateien (mtn mtn.exe) @@ -2229,20 +2282,39 @@ Wenn Sie bereits ein Arbeitsverzeichnis Sehr hoch (Debug-Meldungen) - + The path to the monotone binary is either invalid or points to a version of monotone with which guitone can't work with. Guitone requires monotone with an interface version between '%1' and '%2'. Your installation has the interface version '%3'. Der Pfad zur ausführbaren Datei von monotone ist entweder ungültig oder zeigt auf eine Version von monotone, mit der guitone nicht arbeiten kann. Guitone benötigt ein monotone mit einer Interface-Version zwischen '%1' und '%2'. Ihre monotone-Installation hat die Interface-Version '%3'. - + You need to restart guitone to use the new monotone binary. Sie müssen guitone neu starten, um die neue ausführbare Datei von monotone zu nutzen. - + You need to reload your workspace(s) in order to apply this new setting. Sie müssen Ihre(n) Arbeitsbereich(e) neu laden, um diese Einstellung wirksam werden zu lassen. + + + Warning + Warnung + + + + Activating this may let guitone work with newer, yet untested versions of monotone, in which certain functionalities may have changed or be no longer available. Use at your own risk! + Durch die Aktivierung dieser Option kann guitone dazu gebracht werden, mit neueren, bisher nicht getesteten Versionen von monotone zusammenzuarbeiten, in denen bestimmte Funktionalitäten verändert wurden oder nicht mehr verfügbar sind. Verwenden Sie diese Funktion auf eigene Gefahr! + + + + Activating this may let guitone work with newer, yet untested versions of monotone, in which certain functionalities may have changed or be no longer available. + +Use this at your own risk! + Durch die Aktivierung dieser Option kann guitone dazu gebracht werden, mit neueren, bisher nicht getesteten Versionen von monotone zusammenzuarbeiten, in denen bestimmte Funktionalitäten verändert wurden oder nicht mehr verfügbar sind. + +Verwenden Sie diese Funktion auf eigene Gefahr! + PreferencesDialog @@ -2257,55 +2329,60 @@ Wenn Sie bereits ein Arbeitsverzeichnis Pfad zur ausführbaren Datei von monotone - + Browse Durchsuchen - + Logging Logmeldungen - + enable console logging Konsolenlogging aktivieren - + enable file logging (%1) Dateilogging aktivieren (%1) - + Log level Log-Level - + OK OK - + Cancel Abbrechen - + Miscellaneous Verschiedenes - + check for updates on application launch prüfe auf neue Versionen beim Start der Anwendung - + read workspace incrementally (faster for big directory trees) lies das Arbeitsverzeichnis inkrementell (schneller für große Verzeichnisbäume) + + + relaxed version check + einfache Versionsüberprüfung + QObject @@ -2409,6 +2486,60 @@ Wenn Sie bereits ein Arbeitsverzeichnis + QProcess + + + failed to start + Start fehlgeschlagen + + + + crashed + abgestürzt + + + + timed out waiting for data + Timeout während des Wartens auf Daten + + + + failed to read + Lesen fehlgeschlagen + + + + failed to write + Schreiben fehlgeschlagen + + + + unknown error + unbekannter Fehler + + + + The monotone process for '%1' died (%2). If you think this is a bug in guitone, please report it to the author! + Der monotone-Prozess für '%1' wurde beendet (%2). Wenn Sie glauben, dass dies ein Fehler in guitone ist, senden Sie bitte einen Problembericht an den Autor! + + + + + +Last error output was: +%1 + + +Letzte Fehlerausgabe war: +%1 + + + + Error + Fehler + + + QShortcut ============================================================ --- src/Guitone.cpp b92124f06a493927d5989833e0350e346d2b94ee +++ src/Guitone.cpp 22dcaeed1615785dd5370bab52797265d1634610 @@ -90,7 +90,9 @@ void Guitone::setMonotoneBinaryPath() QString installedVersion; if (!monotoneManager->setMonotoneBinaryPath( - Settings::getMtnBinaryPath(), installedVersion)) + Settings::getMtnBinaryPath(), + Settings::getBool("RelaxedVersionCheck", false), + installedVersion)) { QMessageBox::critical( NULL, ============================================================ --- src/monotone/MonotoneManager.cpp cb2c38e6c54d4a1c7cdb5936ee6fd7b4d929e4d6 +++ src/monotone/MonotoneManager.cpp 30ab167ee4bdb27ddb7255c8b0f52d01fef904c1 @@ -48,16 +48,25 @@ MonotoneManager::~MonotoneManager() } } -bool MonotoneManager::setMonotoneBinaryPath(const QString & mtnBinary, QString & pathVersion) +bool MonotoneManager::setMonotoneBinaryPath(const QString & mtnBinary, + bool relaxedVersionCheck, QString & pathVersion) { pathVersion = getInterfaceVersion(mtnBinary); - if (versionCompare(pathVersion, MinInterfaceVersion) >= 0 && - versionCompare(pathVersion, MaxInterfaceVersion) < 0) + + // check if we match the minimum interface version + if (versionCompare(pathVersion, MinInterfaceVersion) < 0) { - mtnPath = mtnBinary; - return true; + return false; } - return false; + + // check if we should check and match also the maximum interface version + if (!relaxedVersionCheck && versionCompare(pathVersion, MaxInterfaceVersion) >= 0) + { + return false; + } + + mtnPath = mtnBinary; + return true; } // FIXME: I think we need to care somehow if we pass ============================================================ --- src/monotone/MonotoneManager.h ca14810692315d4a9d58d2c220ecbd00a2e69e20 +++ src/monotone/MonotoneManager.h a399ff054cb3b3eede2b51bbb1b4ef18a57b513a @@ -31,7 +31,7 @@ public: ~MonotoneManager(); //! set the path to the monotone binary to use for all new threads - bool setMonotoneBinaryPath(const QString &, QString &); + bool setMonotoneBinaryPath(const QString &, bool, QString &); //! returns if the path to the monotone binary was set successful before inline bool monotoneBinaryPathSet() const { return !mtnPath.isEmpty(); } ============================================================ --- src/view/dialogs/Preferences.cpp 62c7d6fe31de9db358bff248db6a939786347670 +++ src/view/dialogs/Preferences.cpp e3b7d8f1a25f1d24124d6231e9553c983a979a82 @@ -70,6 +70,16 @@ Preferences::Preferences(QWidget * paren selectMtnExecutable, SIGNAL(clicked()), this, SLOT(openFileBrowser()) ); + + relaxedVersionCheck->setCheckState( + Settings::getBool("RelaxedVersionCheck", false) ? + Qt::Checked : Qt::Unchecked + ); + + connect( + relaxedVersionCheck, SIGNAL(toggled(bool)), + this, SLOT(warnAboutRelaxedVersionChecking(bool)) + ); } Preferences::~Preferences() {} @@ -78,12 +88,14 @@ void Preferences::accept() { QString oldPath = Settings::getMtnBinaryPath(); QString newPath = mtnExecutablePath->text(); + bool checkUpperBound = relaxedVersionCheck->isChecked(); + QString installedVersion; // check if the new executable satisfies our version needs // we'll first check the program's plain version and if this // does not succeed we check for the interface version - if (!APP->manager()->setMonotoneBinaryPath(newPath, installedVersion)) + if (!APP->manager()->setMonotoneBinaryPath(newPath, checkUpperBound, installedVersion)) { QMessageBox::critical( this, @@ -121,6 +133,7 @@ void Preferences::accept() DebugLog::setLogLevel(level); Settings::setBool("CheckForUpdates", checkForUpdates->isChecked()); + Settings::setBool("RelaxedVersionCheck", relaxedVersionCheck->isChecked()); if (Settings::getBool("ReadWorkspaceIncrementally", true) != readWorkspaceIncrementally->isChecked()) @@ -153,3 +166,18 @@ void Preferences::openFileBrowser() } } +void Preferences::warnAboutRelaxedVersionChecking(bool enabled) +{ + if (!enabled) return; + + QMessageBox::warning( + this, + tr("Warning"), + tr("Activating this may let guitone work with newer, yet untested " + "versions of monotone, in which certain functionalities may " + "have changed or be no longer available.\n\n" + "Use this at your own risk!"), + QMessageBox::Ok + ); +} + ============================================================ --- src/view/dialogs/Preferences.h 158ed167709f8220efc4d958319c8a60da2eaa45 +++ src/view/dialogs/Preferences.h 4652f103fd3be0b712fba703ba2c35ed941b399f @@ -34,6 +34,7 @@ private slots: private slots: void openFileBrowser(); void accept(); + void warnAboutRelaxedVersionChecking(bool); }; #endif