From 47840ef866314cd164fb8ed60bf72490f9a5858d Mon Sep 17 00:00:00 2001 From: reger24 <11603289+reger24@users.noreply.github.com> Date: Thu, 10 Feb 2022 02:14:44 +0100 Subject: [PATCH] Optimize GitComInf - remove depreciated repro.peel(tag) - reduce counting loop --- libbuild/GitComInf-1.0-all.jar | Bin 2871794 -> 2871737 bytes .../GitComInf/src/main/java/GitComInf.java | 40 ++++++++---------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/libbuild/GitComInf-1.0-all.jar b/libbuild/GitComInf-1.0-all.jar index 7c6e803d5eb61c60713671f6138a73b4097ec79f..c89d199cdd0dfbe90cbf1859105e6354b702f2de 100644 GIT binary patch delta 37513 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

@9H?8LQ64s;<8yF^ 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 W40AQTWH6Y%xyD?rg8Fk0JO2jX1Al7( delta 37909 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 EFA!O^{{R30 diff --git a/libbuild/GitComInf/src/main/java/GitComInf.java b/libbuild/GitComInf/src/main/java/GitComInf.java index cbf680646..5a14c3595 100644 --- a/libbuild/GitComInf/src/main/java/GitComInf.java +++ b/libbuild/GitComInf/src/main/java/GitComInf.java @@ -30,13 +30,14 @@ public class GitComInf extends Properties { public void execute() { String branch = null; - String revision = null; - String lastTag = null; + String revision = null; String commitDate = null; Repository repo = null; Git git = null; RevWalk walk = null; + Ref lastTag = null; + try { final File src = new File(this.repoPath); repo = new FileRepositoryBuilder().readEnvironment() @@ -60,18 +61,15 @@ public class GitComInf extends Properties { /* Peel known tags */ final List peeledTags = new ArrayList<>(); for (final Ref tag : tags) { - peeledTags.add(repo.peel(tag)); + lastTag = tag; } /* Look for the last tag commit and calculate distance with the HEAD commit */ for (final RevCommit commit : walk) { - for (final Ref tag : peeledTags) { - if (commit.equals(tag.getPeeledObjectId()) || commit.equals(tag.getObjectId())) { - lastTag = commit.getShortMessage(); - break; - } + if (commit.equals(lastTag.getPeeledObjectId()) || commit.equals(lastTag.getObjectId())) { + break; } - if (lastTag != null || distance++ > 90999) { + if (distance++ > 90999) { break; } } @@ -88,13 +86,11 @@ public class GitComInf extends Properties { this.setProperty(this.DATEPROP_LABEL, commitDate); this.setProperty("REPL_DATE", commitDate); } catch (final IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + System.err.println(e.getMessage()); } catch (GitAPIException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + System.err.println(e.getMessage()); } catch (IllegalArgumentException e) { - + System.err.println(e.getMessage()); } finally { /* In all cases, properly release resources */ if (walk != null) { @@ -113,9 +109,8 @@ public class GitComInf extends Properties { /** * use: GitComInf.jar pathtoGitRepro outputfile gitbuildnumber.properties * - * @param args = path to Git repository (default . ) - * @param args (optional) = filename for result (default - * ./gitbuildnumber.properties) + * @param args = [0] path to Git repository (default . ) + * [1] (optional) = filename for result (default ./gitbuildnumber.properties) */ public static void main(String[] args) { GitComInf gitRevTask = new GitComInf(); @@ -126,23 +121,22 @@ public class GitComInf extends Properties { } gitRevTask.execute(); if (gitRevTask.isEmpty()) { - System.err.println("no Git repository found" + (args.length == 0 ? "" : " in " + args[0])); + System.err.println("no Git repository found" + (args.length == 0 ? " in " + System.getProperty("user.dir") : " in " + args[0])); } else { - + System.out.println("Git Commit Info: " + gitRevTask.toString()); // output result to property file File f; if (args.length > 1) { f = new File(args[1]); + if (!f.exists()) { + f.getParentFile().mkdirs(); // just make sure missing dir is not a problem + } } else { f = new File("gitbuildnumber.properties"); } try { - if (!f.exists()) { - f.getParentFile().mkdirs(); - // Files.createDirectories(f.getParentFile().toPath()); // just make sure missing dir is not a problem - } f.createNewFile(); FileWriter w = new FileWriter(f); gitRevTask.store(w, "");