Menu

#108 StatSVN say "Subversion binary is incorrect version. Found: 1.10.0, required: 1.3.0 Updating"

v1.0 (example)
open
nobody
None
5
2018-06-25
2018-06-25
No

Hi mainteners, I met a bug that statsvn say

"Subversion binary is incorrect version. Found: 1.10.0, required: 1.3.0 Updating"

So, SvnStartupUtils#checkSvnVersionSufficient() compare/execute

if (versionString.compareTo(SVN_MINIMUM_VERSION) >= 0)

It look not good.
And I think this code will modify into following patche.

--- src/net/sf/statsvn/util/SvnStartupUtils.java.orig 2018-06-25 10:35:11.895337000 +0900
+++ src/net/sf/statsvn/util/SvnStartupUtils.java 2018-06-25 11:00:44.722623000 +0900
@@ -26,6 +26,9 @@
private static final String SVN_VERSION_LINE_PATTERN = ". [0-9]+\.[0-9]+\.[0-9]+.";

private static final String SVN_VERSION_PATTERN = "[0-9]+\\.[0-9]+\\.[0-9]+";
  • private static final int SVN_MINIMUM_MAJOR_VERSION = 1;
  • private static final int SVN_MINIMUM_MINOR_VERSION = 3;
  • private static final int SVN_MINIMUM_REVISION_VERSION = 0;

    protected ISvnProcessor processor;
    @@ -62,7 +65,10 @@
    final String versionString = line.substring(m.start(), m.end());

                    // we perform a simple string comparison against the version numbers
    
  • if (versionString.compareTo(SVN_MINIMUM_VERSION) >= 0) {

  • final int[] version = parseVersionNumber(versionString);
  • if (version[0] >= SVN_MINIMUM_MAJOR_VERSION &&
  • version[1] >= SVN_MINIMUM_MINOR_VERSION &&
  • version[2] >= SVN_MINIMUM_REVISION_VERSION) {
    return versionString; // success
    } else {
    throw new SvnVersionMismatchException(versionString, SVN_MINIMUM_VERSION);
    @@ -98,4 +104,25 @@
    // we perform a simple string comparison against the version numbers
    return version.compareTo(SVN_MINIMUM_VERSION_DIFF_PER_REV) >= 0;
    }
    +
  • /**
    • Get integer version array from version string.
    • @return
    • triple of version number
  • **/
  • static int[] parseVersionNumber(final String versionString) throws SvnVersionMismatchException {
  • final String[] versionNumberStrings = versionString.split("\.");
    +
  • if(versionNumberStrings.length == 3) {
  • int[] version = new int[3];
  • for(int i = 0 ; i < 3 ; i++) {
  • version[i] = Integer.parseInt(versionNumberStrings[i], 10);
  • }
  • return version;
  • } else {
  • throw new SvnVersionMismatchException(versionString, SVN_MINIMUM_VERSION);
  • }
  • }
    }
1 Attachments

Discussion


Log in to post a comment.

MongoDB Logo MongoDB