- Features: extension for
gitto support submodule functions. - Blazing-fast command line application written in
Javaand built with latest technologies:native imagefrom GraalVM to compile into machine code and run without JVM or JDK.- Eclipse Vert.x for asynchronuos execution. (*)
- Easy to setup:
- The app is completely bundled into an executable file.
- No extra dependencies needed.
- Just download and extract the
tarfile fromreleasepage. - Add the file to your shell
pathfor quick access.
(*): the configs of Vertx were minimized to use as least resource as possible.
(require docker to build)
There are 2 GraalVM distributions: GraalVM CE and Mandrel. Since this app is written in Java completely, Mandrel is prefered.
cd gis
docker build -t gis .
docker create --name dkgis_ gis:latest; docker cp dkgis_:/app/gis/gis .; docker rm -f dkgis_;After the steps above, an executable file named gis will be created under project directory.
cd gis
mvn clean packageThe executable jar file will be created at target/gis-<version>.jar
For more details, just run:
./gis| git | gis |
|---|---|
git submodule foreach git status -sb --ignore-submodules |
gis st |
| (not include root module) | (include root module) |
| 67ms | 49ms |
| 141ms | 106ms |
| 103ms | 56ms |
| 148ms | 109ms |
| 155ms | 118ms |
| 157ms | 116ms |
| 126ms | 108ms |
| 151ms | 103ms |
| 67ms | 118ms |
| 148ms | 50ms |
| 134ms | 50ms |
| average = 127ms | average = 89.36ms |
Since the duration results from git command are too obvious, I only run 5 times.
| git | gis |
|---|---|
git submodule foreach git fetch |
gis fe |
| (not include root module) | (include root module) |
| 22s751ms | 5s550ms |
| 23s503ms | 5s214ms |
| 20s482ms | 3s223ms |
| 21s587ms | 3s284ms |
| 24s75ms | 3s273ms |
| 3s34ms | |
| 3s596ms | |
| 3s100ms | |
| 3s157ms | |
| 3s147ms | |
| 3s594ms | |
| average = 22s479.6ms | average = 3s679.818ms |