#include <config.h>
#include <support/debug.h>
+#include <limits>
#include "GuiCompareHistory.h"
int rev=0;
string tmp;
- // RCS case
- if (!isStrInt(revstring))
- revstring = rsplit(revstring, tmp , '.' );
- if (isStrInt(revstring))
- rev = convert<int>(revstring);
+ bool enableBetween = true;
+ // GIT case, hash is long
+ if (revstring.length() > 20) {
+ enableBetween = false;
+ rev = numeric_limits<int>::max();
+ } else {
+ // RCS case
+ if (!isStrInt(revstring))
+ revstring = rsplit(revstring, tmp , '.' );
+ // both SVN & RCS cases
+ if (isStrInt(revstring))
+ rev = convert<int>(revstring);
+ }
+
+ // later we can provide comparison between two hashes
+ betweenrevRB->setEnabled(enableBetween);
okPB->setEnabled(rev);
rev1SB->setMaximum(rev);
rev2SB->setMaximum(rev);
- revbackSB->setMaximum(rev);
+ revbackSB->setMaximum(rev-1);
rev2SB->setValue(rev);
rev1SB->setValue(rev-1);
void GuiCompareHistory::enableControls()
{
bool rb = revbackRB->isChecked();
+ oldL->setEnabled(!rb);
+ newL->setEnabled(!rb);
rev1SB->setEnabled(!rb);
rev2SB->setEnabled(!rb);
+ rev2SB->setEnabled(!rb);
betweenrevRB->setChecked(!rb);
revbackSB->setEnabled(rb);
}