Example usage for org.eclipse.jgit.lib Repository getTags

List of usage examples for org.eclipse.jgit.lib Repository getTags

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib Repository getTags.

Prototype

@Deprecated
@NonNull
public Map<String, Ref> getTags() 

Source Link

Document

Get mutable map of all tags

Usage

From source file:br.com.riselabs.cotonet.util.CodefaceHelper.java

License:Open Source License

private static void createMergeBasedTags(Project project) throws IOException {
    Map<String, String> tagsMap;
    MergeScenarioDAO dao = new MergeScenarioDAO();
    Repository repository = project.getRepository();
    List<MergeScenario> scenarios = new ArrayList<MergeScenario>();
    try {/*from  ww  w .ja  v  a 2  s  .  co  m*/
        scenarios = dao.list(project.getID());
    } catch (InvalidCotonetBeanException e1) {
        Logger.logStackTrace(e1);
    }
    try (Git git = new Git(repository)) {
        // remove existing tags
        for (String tag : repository.getTags().keySet()) {
            git.tagDelete().setTags(tag).call();
        }
    } catch (GitAPIException e) {
        Logger.logStackTrace(e);
    }

    tagsMap = new HashMap<String, String>();
    for (MergeScenario scenario : scenarios) {
        String tagT = project.getName() + "T" + scenario.getID();
        String tagB = project.getName() + "B" + scenario.getID();

        tagsMap.put(tagB, scenario.getSHA1Merge());
        RevCommit earlier = getEarlierCommit(project.getRepository(), scenario.getSHA1Merge(), 3);
        tagsMap.put(tagT, earlier.getName());

        // prepare test-repository
        try (Git git = new Git(repository)) {

            try (RevWalk walk = new RevWalk(repository)) {
                ObjectId refCommitID = ObjectId.fromString(scenario.getSHA1Merge());
                RevCommit refCommit = walk.parseCommit(refCommitID);
                git.tag().setObjectId(refCommit).setName(tagB).call();
                git.tag().setObjectId(earlier).setName(tagT).call();

                walk.dispose();
            } catch (ConcurrentRefUpdateException e) {
                e.printStackTrace();
            } catch (InvalidTagNameException e) {
                e.printStackTrace();
            } catch (NoHeadException e) {
                e.printStackTrace();
            } catch (GitAPIException e) {
                e.printStackTrace();
            }
        } catch (RevisionSyntaxException e) {
            Logger.logStackTrace(e);
        }
    }
    try {
        createTagToSHA1MappingFile(project.getName(), tagsMap);
    } catch (NullPointerException | EmptyContentException e) {
        Logger.logStackTrace(e);
    }
}

From source file:com.gitblit.utils.JGitUtils.java

License:Apache License

/**
 * this method creates an incremental revision number as a tag according to
 * the amount of already existing tags, which start with a defined prefix.
 *
 * @param repository/*from   w  ww  . j  ava2s  .c o  m*/
 * @param objectId
 * @param tagger
 * @param prefix
 * @param intPattern
 * @param message
 * @return true if operation was successful, otherwise false
 */
public static boolean createIncrementalRevisionTag(Repository repository, String objectId, PersonIdent tagger,
        String prefix, String intPattern, String message) {
    boolean result = false;
    Iterator<Entry<String, Ref>> iterator = repository.getTags().entrySet().iterator();
    long lastRev = 0;
    while (iterator.hasNext()) {
        Entry<String, Ref> entry = iterator.next();
        if (entry.getKey().startsWith(prefix)) {
            try {
                long val = Long.parseLong(entry.getKey().substring(prefix.length()));
                if (val > lastRev) {
                    lastRev = val;
                }
            } catch (Exception e) {
                // this tag is NOT an incremental revision tag
            }
        }
    }
    DecimalFormat df = new DecimalFormat(intPattern);
    result = createTag(repository, objectId, tagger, prefix + df.format((lastRev + 1)), message);
    return result;
}

From source file:com.meltmedia.cadmium.core.git.GitService.java

License:Apache License

public String getBranchName() throws Exception {
    Repository repository = git.getRepository();
    if (ObjectId.isId(repository.getFullBranch())
            && repository.getFullBranch().equals(repository.resolve("HEAD").getName())) {
        RevWalk revs = null;//  w w  w . ja  va  2  s . c  o m
        try {
            log.trace("Trying to resolve tagname: {}", repository.getFullBranch());
            ObjectId tagRef = ObjectId.fromString(repository.getFullBranch());
            revs = new RevWalk(repository);
            RevCommit commit = revs.parseCommit(tagRef);
            Map<String, Ref> allTags = repository.getTags();
            for (String key : allTags.keySet()) {
                Ref ref = allTags.get(key);
                RevTag tag = revs.parseTag(ref.getObjectId());
                log.trace("Checking ref {}, {}", commit.getName(), tag.getObject());
                if (tag.getObject().equals(commit)) {
                    return key;
                }
            }
        } catch (Exception e) {
            log.warn("Invalid id: {}", repository.getFullBranch(), e);
        } finally {
            revs.release();
        }
    }
    return repository.getBranch();
}

From source file:fr.obeo.ariadne.ide.connector.git.internal.explorer.GitExplorer.java

License:Open Source License

/**
 * Returns the Ariadne repository that we will use to map the Git repository analyzed.
 * /*from  w ww.  j a  va  2s .  c om*/
 * @param gitRepository
 *            The Git repository
 * @param monitor
 *            The progress monitor
 * @return The Ariadne repository that we will use to map the Git repository analyzed.
 */
private fr.obeo.ariadne.model.scm.Repository getOrCreateRepository(Repository gitRepository,
        IProgressMonitor monitor) {
    monitor.subTask(AriadneGitConnectorMessage.getString("GitExplorer.InitializingRepository")); //$NON-NLS-1$
    monitor.worked(1);

    fr.obeo.ariadne.model.scm.Repository ariadneRepository = null;
    String repositoryName = gitRepository.getDirectory().getParentFile().getName();

    Category category = this.ariadneProject.getCategory();
    Organization organization = category.getOrganization();

    if (organization != null) {
        List<fr.obeo.ariadne.model.scm.Repository> repositories = organization.getRepositories();
        for (fr.obeo.ariadne.model.scm.Repository aRepository : repositories) {
            if (repositoryName.equals(aRepository.getName())) {
                ariadneRepository = aRepository;

                // Clear everything
                List<Branch> branches = aRepository.getBranches();
                for (Branch branch : branches) {
                    EcoreUtil.remove(branch);
                }
                List<Commit> commits = aRepository.getCommits();
                for (Commit commit : commits) {
                    EcoreUtil.remove(commit);
                }

                List<Tag> tags = aRepository.getTags();
                for (Tag tag : tags) {
                    EcoreUtil.remove(tag);
                }
            }
        }
    }

    if (ariadneRepository == null) {
        ariadneRepository = ScmFactory.eINSTANCE.createRepository();
        ariadneRepository.setName(repositoryName);
        if (organization != null) {
            if (!this.shouldSaveInProjectResource) {
                final String fileExtension = "ariadnescm"; //$NON-NLS-1$
                URI uri = EcoreUtil.getURI(this.ariadneProject).trimFragment().trimFileExtension()
                        .appendFileExtension(fileExtension);
                Resource resource = this.resourceSet.createResource(uri);
                resource.getContents().add(ariadneRepository);
            }

            organization.getRepositories().add(ariadneRepository);
            this.ariadneProject.getRepositories().add(ariadneRepository);
        }
    }
    return ariadneRepository;
}

From source file:fr.obeo.ariadne.ide.connector.git.internal.explorer.GitExplorer.java

License:Open Source License

/**
 * Computes the references, branches and tags of the Git repository and map them in the Ariadne
 * repository.//  w ww.j  a va 2  s  .  c  o  m
 * 
 * @param gitRepository
 *            The Git repository
 * @param ariadneRepository
 *            The Ariadne repository
 * @param monitor
 *            The progress monitor
 */
private void computeReferences(Repository gitRepository, fr.obeo.ariadne.model.scm.Repository ariadneRepository,
        IProgressMonitor monitor) {
    monitor.subTask(AriadneGitConnectorMessage.getString("GitExplorer.ComputingReferences")); //$NON-NLS-1$

    Map<String, Ref> allRefs = gitRepository.getAllRefs();
    for (Entry<String, Ref> entry : allRefs.entrySet()) {
        String key = entry.getKey();
        Ref reference = entry.getValue();

        ObjectId linkedObject = null;
        if (reference.isPeeled()) {
            linkedObject = this.getLinkedObject(reference);
        } else {
            if (reference.isSymbolic()) {
                linkedObject = this.getLinkedObject(reference.getLeaf());
            } else {
                linkedObject = this.getLinkedObject(reference);
            }
        }

        RevCommit commit = null;

        Set<RevCommit> keySet = this.commit2ariadneCommit.keySet();
        for (RevCommit revCommit : keySet) {
            if (revCommit.getId().equals(linkedObject)) {
                commit = revCommit;
            }
        }

        if (commit != null) {
            if (gitRepository.getTags().containsKey(key)) {
                // tag
                Tag tag = ScmFactory.eINSTANCE.createTag();
                tag.setCommit(this.commit2ariadneCommit.get(commit));
                tag.setName(reference.getName());
                ariadneRepository.getTags().add(tag);
            } else {
                // branch
                Branch branch = ScmFactory.eINSTANCE.createBranch();
                branch.setCommit(this.commit2ariadneCommit.get(commit));
                branch.setName(reference.getName());
                ariadneRepository.getBranches().add(branch);
            }
        } else {
            // A branch linked to something else than a commit...
        }
        monitor.worked(1);
    }
}

From source file:info.plichta.maven.plugins.changelog.RepositoryProcessor.java

License:Apache License

private Map<ObjectId, TagWrapper> extractTags(Repository repository, RevWalk walk) throws IOException {
    final Map<ObjectId, TagWrapper> tagMapping = new HashMap<>();
    for (Entry<String, Ref> entry : repository.getTags().entrySet()) {
        String name = entry.getKey();

        final Matcher matcher = tagPattern.matcher(name);
        if (matcher.matches()) {
            name = matcher.group(1);/*www  . j  av  a2 s . c  o m*/
            tagMapping.put(walk.parseCommit(entry.getValue().getObjectId()), new TagWrapper(name));
        }
    }
    return tagMapping;
}

From source file:jetbrains.buildServer.buildTriggers.vcs.git.tests.GitLabelingSupportTest.java

License:Apache License

public void testLabels() throws Exception {
    VcsRoot root = vcsRoot().withFetchUrl(getRemoteRepositoryDir("repo.git")).build();
    // ensure that all revisions reachable from master are fetched
    buildGit().getLabelingSupport().label("test_label", "2276eaf76a658f96b5cf3eb25f3e1fda90f6b653", root,
            CheckoutRules.DEFAULT);// www.  j  a  va2  s. c  om
    Repository r = new RepositoryBuilder().setGitDir(getRemoteRepositoryDir("repo.git")).build();
    RevWalk revWalk = new RevWalk(r);
    try {
        Ref tagRef = r.getTags().get("test_label");
        RevTag t = revWalk.parseTag(tagRef.getObjectId());
        assertEquals(t.getObject().name(), "2276eaf76a658f96b5cf3eb25f3e1fda90f6b653");
    } finally {
        r.close();
    }
}

From source file:jetbrains.buildServer.buildTriggers.vcs.git.tests.GitLabelingSupportTest.java

License:Apache License

@Test
public void tag_with_specified_username() throws Exception {
    VcsRoot root = vcsRoot().withFetchUrl(GitUtils.toURL(getRemoteRepositoryDir("repo.git")))
            .withUsernameForTags("John Doe <john.doe@some.org>").build();
    buildGit().getLabelingSupport().label("label_with_specified_username",
            "465ad9f630e451b9f2b782ffb09804c6a98c4bb9", root, CheckoutRules.DEFAULT);

    Repository r = new RepositoryBuilder().setGitDir(getRemoteRepositoryDir("repo.git")).build();
    RevWalk revWalk = new RevWalk(r);
    try {// w w  w .  ja  v  a2 s .  com
        Ref tagRef = r.getTags().get("label_with_specified_username");
        RevTag t = revWalk.parseTag(tagRef.getObjectId());
        PersonIdent tagger = t.getTaggerIdent();
        assertEquals(tagger.getName(), "John Doe");
        assertEquals(tagger.getEmailAddress(), "john.doe@some.org");
    } finally {
        revWalk.release();
        r.close();
    }
}

From source file:net.erdfelt.android.sdkfido.git.internal.GitInfo.java

License:Apache License

private static void infoTags(Repository db) {
    System.out.printf("%nAll Tags (%d)%n", db.getTags().size());

    Map<String, Ref> sorted = new TreeMap<String, Ref>();
    sorted.putAll(db.getTags());/*  ww w.j  ava 2 s  .  co m*/

    int maxRefLength = 0;
    for (Entry<String, Ref> entry : sorted.entrySet()) {
        maxRefLength = Math.max(maxRefLength, entry.getValue().getName().length());
    }

    for (Entry<String, Ref> entry : db.getTags().entrySet()) {
        Ref ref = entry.getValue();
        System.out.printf("%-" + maxRefLength + "s %s%n", ref.getName(),
                ref.getObjectId().abbreviate(ABBREV_LEN).name());
    }
}

From source file:org.eclipse.egit.internal.relengtools.ShowInfoHandler.java

License:Open Source License

private void deeplinkTest() throws Exception {
    final IProject deeplink = ResourcesPlugin.getWorkspace().getRoot()
            .getProject("org.eclipse.e4.core.deeplink");
    System.out.println("\nTest for project: " + deeplink);
    final RepositoryMapping rm = RepositoryMapping.getMapping(deeplink);
    final Repository repo = rm.getRepository();
    final RevCommit expectedLastCommit = getCommit(repo, "d660f0a07c8ff16c9b46b3d69bc1c271b2cf4aba");
    final RevCommit latestCommit = getLatestCommitFor(rm, repo, deeplink);
    System.out.println(expectedLastCommit.equals(latestCommit) + " Latest commit: expected: "
            + expectedLastCommit + "\n\tgot: " + latestCommit);

    final Map<String, Ref> tags = repo.getTags();
    final Set<Ref> expectedTags = new HashSet<Ref>(Arrays.asList(tags.get(NEW_TAG)));
    final Set<Ref> twoTags = getTagsForCommit(repo, expectedLastCommit);
    System.out.println(//www.  j a v  a2 s  .  c om
            expectedTags.equals(twoTags) + " Found tags: expected: " + expectedTags + "\n\tgot: " + twoTags);

    final Set<Ref> tagsContainingCommit = getTagsContainingCommit(repo, expectedLastCommit);
    System.out.println(expectedTags.equals(tagsContainingCommit) + " Found tags containing commit "
            + expectedLastCommit + ":\n\texpected: " + expectedTags + "\n\tgot: " + tagsContainingCommit);
}