@@ -628,21 +628,23 @@ protected void buildTagList(File directory, CommandTimeoutType cmdType) {
628
628
create (Paths .get (directory .getAbsolutePath (), ".git" ).toFile ())) {
629
629
try (Git git = new Git (repository )) {
630
630
List <Ref > refList = git .tagList ().call (); // refs sorted according to tag names
631
- Map <Ref , String > ref2Tags = new HashMap <>();
631
+ Map <RevCommit , String > commit2Tags = new HashMap <>();
632
632
for (Ref ref : refList ) {
633
633
String tagName = ref .getName ().replace ("refs/tags/" , "" );
634
634
String existingTags ;
635
- if ((existingTags = ref2Tags .get (ref )) != null ) {
635
+ RevCommit commit = getCommit (repository , ref );
636
+ if ((existingTags = commit2Tags .get (commit )) != null ) {
636
637
existingTags = existingTags + TAGS_SEPARATOR + tagName ;
637
- ref2Tags .put (ref , existingTags );
638
+ commit2Tags .put (commit , existingTags );
638
639
} else {
639
- ref2Tags .put (ref , tagName );
640
+ commit2Tags .put (commit , tagName );
640
641
}
641
642
}
642
643
643
- for (Map .Entry <Ref , String > entry : ref2Tags .entrySet ()) {
644
- Date date = getCommitDate (repository , entry .getKey ());
645
- GitTagEntry tagEntry = new GitTagEntry (entry .getKey ().getObjectId ().getName (),
644
+ for (Map .Entry <RevCommit , String > entry : commit2Tags .entrySet ()) {
645
+ int commitTime = entry .getKey ().getCommitTime ();
646
+ Date date = new Date ((long ) (commitTime ) * 1000 );
647
+ GitTagEntry tagEntry = new GitTagEntry (entry .getKey ().getName (),
646
648
date , entry .getValue ());
647
649
this .tagList .add (tagEntry );
648
650
}
@@ -659,13 +661,10 @@ protected void buildTagList(File directory, CommandTimeoutType cmdType) {
659
661
}
660
662
661
663
@ NotNull
662
- private Date getCommitDate (org .eclipse .jgit .lib .Repository repository , Ref ref ) throws IOException {
663
- int commitTime ;
664
+ private RevCommit getCommit (org .eclipse .jgit .lib .Repository repository , Ref ref ) throws IOException {
664
665
try (RevWalk walk = new RevWalk (repository )) {
665
- RevCommit commit = walk .parseCommit (ref .getObjectId ());
666
- commitTime = commit .getCommitTime ();
666
+ return walk .parseCommit (ref .getObjectId ());
667
667
}
668
- return new Date ((long ) (commitTime ) * 1000 );
669
668
}
670
669
671
670
@ Override
0 commit comments