@@ -69,8 +69,6 @@ protected Git getLocalGit(String folder) throws Exception {
6969 .setDirectory (new File (folder ))
7070 .setURI (repo .getRepoUrl ())
7171 .setCredentialsProvider (credentials )
72- .setNoCheckout (false )
73- .setCloneAllBranches (true )
7472 .call ()
7573 .close ();
7674 }
@@ -374,6 +372,7 @@ void checkout(Git git, Repository gitRepo, String branchName, String revision) t
374372 .setCredentialsProvider (credentials )
375373 .call ();
376374 if (revision == null ) {
375+
377376 cmd
378377 .setStartPoint ("origin/" + bn )
379378 .setCreateBranch (gitRepo .exactRef ("refs/heads/" + bn ) == null )
@@ -450,18 +449,19 @@ public Set<String> getBranches(String path) {
450449 try (IVCSLockedWorkingCopy wc = repo .getVCSLockedWorkingCopy ();
451450 Git git = getLocalGit (wc );
452451 Repository gitRepo = git .getRepository ()) {
453- // checkout conflict with files in releaser
454- // git
455- // .fetch()
456- // .setRefSpecs(new RefSpec("+refs/heads/*:refs/heads/*"))
457- // .setRemoveDeletedRefs(true)
458- // .setCredentialsProvider(credentials)
459- // .call();
460452
461453 git
462454 .pull ()
463455 .setCredentialsProvider (credentials )
464456 .call ();
457+ git
458+ .fetch ()
459+ .setRefSpecs (new RefSpec ("+refs/heads/*:refs/heads/*" ))
460+ .setRemoveDeletedRefs (true )
461+ .setCredentialsProvider (credentials )
462+ .call ();
463+
464+
465465
466466 Collection <Ref > refs = gitRepo .getRefDatabase ().getRefs (REFS_REMOTES_ORIGIN ).values ();
467467 Set <String > res = new HashSet <>();
@@ -614,23 +614,21 @@ public List<VCSCommit> getCommitsRange(String branchName, String startFromCommit
614614 RevWalk rw = new RevWalk (gitRepo )) {
615615
616616 checkout (git , gitRepo , branchName , null );
617-
618617 String bn = getRealBranchName (branchName );
619618
620619 List <VCSCommit > res = new ArrayList <>();
621620 RevCommit startCommit ;
622621 RevCommit endCommit ;
623622 if (direction == WalkDirection .ASC ) {
624- Ref ref = gitRepo .exactRef ("refs/heads/" + bn );
625- ObjectId headCommitId = ref .getObjectId ();
623+ ObjectId headCommitId = gitRepo .exactRef ("refs/remotes/origin/" + bn ).getObjectId ();
626624 startCommit = rw .parseCommit ( headCommitId );
627625 ObjectId sinceCommit = startFromCommitId == null ?
628626 getInitialCommit (gitRepo , bn ).getId () :
629627 ObjectId .fromString (startFromCommitId );
630628 endCommit = rw .parseCommit (sinceCommit );
631629 } else {
632630 ObjectId sinceCommit = startFromCommitId == null ?
633- gitRepo .exactRef ("refs/heads /" + bn ).getObjectId () :
631+ gitRepo .exactRef ("refs/remotes/origin /" + bn ).getObjectId () :
634632 ObjectId .fromString (startFromCommitId );
635633 startCommit = rw .parseCommit ( sinceCommit );
636634 endCommit = getInitialCommit (gitRepo , bn );
@@ -839,23 +837,24 @@ public List<VCSTag> getTagsOnRevision(String revision) {
839837 updateLocalTags (git );
840838
841839 List <VCSTag > res = new ArrayList <>();
842-
843- Collection <Ref > refs = gitRepo .getAllRefsByPeeledObjectId ().get (gitRepo .resolve (revision ));
840+
841+ // getAllRefsByPeeledObject does not work. Does not return newelly created tag
842+ Collection <Ref > tagRefs = gitRepo .getTags ().values ();
843+
844844 RevCommit revCommit ;
845- for (Ref ref : refs == null ? new ArrayList <Ref >() : refs ) {
846- if (!ref .getName ().contains ("refs/tags/" )) {
847- continue ;
848- }
845+ for (Ref ref : tagRefs ) {
849846 ObjectId relatedCommitObjectId = ref .getPeeledObjectId () == null ? ref .getObjectId () : ref .getPeeledObjectId ();
850847 revCommit = rw .parseCommit (relatedCommitObjectId );
851- VCSCommit relatedCommit = getVCSCommit (revCommit );
852- RevObject revObject = rw .parseAny (ref .getObjectId ());
853- if (revObject instanceof RevTag ) {
854- RevTag revTag = (RevTag ) revObject ;
855- res .add (new VCSTag (revTag .getTagName (), revTag .getFullMessage (), revTag .getTaggerIdent ().getName (), relatedCommit ));
856- } else {
857- res .add (new VCSTag (ref .getName ().replace ("refs/tags/" , "" ), null , null , relatedCommit ));
858- }
848+ if (revCommit .getName ().equals (revision )) {
849+ VCSCommit relatedCommit = getVCSCommit (revCommit );
850+ RevObject revObject = rw .parseAny (ref .getObjectId ());
851+ if (revObject instanceof RevTag ) {
852+ RevTag revTag = (RevTag ) revObject ;
853+ res .add (new VCSTag (revTag .getTagName (), revTag .getFullMessage (), revTag .getTaggerIdent ().getName (), relatedCommit ));
854+ } else {
855+ res .add (new VCSTag (ref .getName ().replace ("refs/tags/" , "" ), null , null , relatedCommit ));
856+ }
857+ }
859858 }
860859
861860 return res ;
0 commit comments