[Bug 229325] develop/statsvn dose work on FreeBSD-11-stable
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Jun 25 05:07:22 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229325
--- Comment #1 from kensaku.masuda at gmail.com ---
One more problem found.
Here is patches.
--- 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
13:32:56.122954000 +0900
@@ -26,6 +26,13 @@
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;
+
+ private static final int SVN_MINIMUM_MAJOR_VERSION_DIFF_PER_REV = 1;
+ private static final int SVN_MINIMUM_MINOR_VERSION_DIFF_PER_REV = 4;
+ private static final int SVN_MINIMUM_REVISION_VERSION_DIFF_PER_REV = 0;
protected ISvnProcessor processor;
@@ -62,7 +69,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);
@@ -94,8 +104,38 @@
/* (non-Javadoc)
* @see
net.sf.statsvn.util.IVersionProcessor#checkDiffPerRevPossible(java.lang.String)
*/
- public synchronized boolean checkDiffPerRevPossible(final String
version) {
+ public synchronized boolean checkDiffPerRevPossible(final String
versionString) {
// we perform a simple string comparison against the version
numbers
- return version.compareTo(SVN_MINIMUM_VERSION_DIFF_PER_REV) >=
0;
+ try {
+ final int[] version =
parseVersionNumber(versionString);
+
+ return version[0] >=
SVN_MINIMUM_MAJOR_VERSION_DIFF_PER_REV &&
+ version[1] >=
SVN_MINIMUM_MINOR_VERSION_DIFF_PER_REV &&
+ version[2] >=
SVN_MINIMUM_REVISION_VERSION_DIFF_PER_REV;
+ } catch(SvnVersionMismatchException e) {
+
SvnConfigurationOptions.getTaskLogger().info(e.getMessage());
+ return false;
+ }
+ }
+
+ /**
+ * Get integer version array from version string.
+ * @param versionString
+ * @return
+ * triple of version number
+ * @exception SvnVersionMismatchException
+ **/
+ 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);
+ }
}
}
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-ports-bugs
mailing list