diff --git a/README.md b/README.md index c8bd428..900b088 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,26 @@ # multi-version-control Lets you run a version control command, such as `status` or `pull`, on -a set of CVS/Git/Hg/SVN clones/checkouts. +a set of clones or checkouts. Supports CVS, Git, Hg, and SVN. + +## Use See the [documentation](http://plumelib.org/multi-version-control/api/org/plumelib/multiversioncontrol/MultiVersionControl.html). + +## Installation + +``` +cd SOME_DIRECTORY +git clone https://github.com/plume-lib/multi-version-control +cd multi-version-control +./gradlew assemble +``` + +Add to your shell startup file, such as `~/.profile`: +``` +alias mvc='java -ea -cp SOME_DIRECTORY/multi-version-control/build/libs/multi-version-control-all.jar org.plumelib.multiversioncontrol.MultiVersionControl' +``` + +## Other scripts for managing multiple git clones + +See the scripts in [manage-git-clones](https://github.com/plume-lib/manage-git-clones). diff --git a/build.gradle b/build.gradle index 9b45141..a9c31c7 100644 --- a/build.gradle +++ b/build.gradle @@ -7,13 +7,13 @@ plugins { // Code formatting; defines targets "spotlessApply" and "spotlessCheck" // Requires JDK 11 or higher; the plugin crashes under JDK 8. - id 'com.diffplug.spotless' version '6.19.0' + id 'com.diffplug.spotless' version '6.20.0' // Error Prone linter id('net.ltgt.errorprone') version '3.1.0' // Checker Framework pluggable type-checking - id 'org.checkerframework' version '0.6.27' + id 'org.checkerframework' version '0.6.29' } repositories { @@ -25,7 +25,7 @@ dependencies { implementation 'org.apache.commons:commons-exec:1.3' implementation 'org.ini4j:ini4j:0.5.4' implementation 'org.plumelib:options:2.0.3' - implementation 'org.plumelib:plume-util:1.7.0' + implementation 'org.plumelib:plume-util:1.8.1' implementation 'org.tmatesoft.svnkit:svnkit:1.10.11' } @@ -69,7 +69,7 @@ spotless { /// Error Prone linter dependencies { - errorprone('com.google.errorprone:error_prone_core:2.19.1') + errorprone('com.google.errorprone:error_prone_core:2.20.0') } tasks.withType(JavaCompile).configureEach { // "-processing" avoids javac warning "No processor claimed any of these annotations". @@ -122,7 +122,7 @@ checkerFramework { // To use a snapshot version of the Checker Framework. if (false) { // TODO: change the above test to false when CF is released - ext.checkerFrameworkVersion = '3.34.1-eisop-SNAPSHOT' + ext.checkerFrameworkVersion = '3.37.0-eisop-SNAPSHOT' dependencies { compileOnly "io.github.eisop:checker-qual:${checkerFrameworkVersion}" testCompileOnly "io.github.eisop:checker-qual:${checkerFrameworkVersion}" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index c1962a7..033e24c 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d..9f4197d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index aeb74cb..fcb6fca 100755 --- a/gradlew +++ b/gradlew @@ -130,10 +130,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. diff --git a/src/main/java/org/plumelib/multiversioncontrol/MultiVersionControl.java b/src/main/java/org/plumelib/multiversioncontrol/MultiVersionControl.java index c736945..89a4f60 100644 --- a/src/main/java/org/plumelib/multiversioncontrol/MultiVersionControl.java +++ b/src/main/java/org/plumelib/multiversioncontrol/MultiVersionControl.java @@ -33,7 +33,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.RequiresNonNull; import org.checkerframework.checker.regex.qual.Regex; -import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.initializedfields.qual.EnsuresInitializedFields; import org.checkerframework.common.value.qual.MinLen; import org.checkerframework.dataflow.qual.Pure; @@ -784,7 +783,7 @@ public boolean equals(@GuardSatisfied Checkout this, @GuardSatisfied @Nullable O @Override @Pure - public int hashCode(@GuardSatisfied @UnknownSignedness Checkout this) { + public int hashCode(@GuardSatisfied Checkout this) { return Objects.hash(repoType, canonicalDirectory, module); }