Example usage for org.eclipse.jgit.api Git getRepository

List of usage examples for org.eclipse.jgit.api Git getRepository

Introduction

In this page you can find the example usage for org.eclipse.jgit.api Git getRepository.

Prototype

public Repository getRepository() 

Source Link

Document

Get repository

Usage

From source file:br.com.metricminer2.scm.GitRepository.java

License:Apache License

@Override
public String blame(String file, String currentCommit, Integer line) {
    Git git = null;
    try {/* ww  w . jav  a  2 s  .  c om*/
        git = Git.open(new File(path));

        Iterable<RevCommit> commits = git.log().add(git.getRepository().resolve(currentCommit)).call();
        ObjectId prior = commits.iterator().next().getParent(0).getId();

        BlameResult blameResult = git.blame().setFilePath(file).setStartCommit(prior).setFollowFileRenames(true)
                .call();

        return blameResult.getSourceCommit(line).getId().getName();

    } catch (Exception e) {
        throw new RuntimeException(e);
    } finally {
        if (git != null)
            git.close();
    }

}

From source file:br.com.riselabs.cotonet.crawler.RepositoryCrawler.java

License:Open Source License

/**
 * Clones the project's repository of this {@code RepositoryCrawler}
 * instance. The method {@code #getRepository()} returns an object that
 * represents the repository./*from  www.  j  ava2 s  .  c  om*/
 * 
 * @param repositoryURL
 * @return
 * @throws IOException
 * @throws InvalidRemoteException
 * @throws TransportException
 * @throws GitAPIException
 */
public Repository cloneRepository() {
    Git result;
    try {
        Logger.log(log, "[" + getProject().getName() + "] Cloning Start.");
        result = Git.cloneRepository().setURI(project.getUrl() + ".git").setDirectory(repositoryDir).call();
        Logger.log(log, "[" + getProject().getName() + "] Cloning Finished.");
        return result.getRepository();
    } catch (GitAPIException e) {
        Logger.log(log, "[" + getProject().getName() + "] Cloning Failed.");
        Logger.logStackTrace(log, e);
    }
    System.gc();
    return null;
}

From source file:br.edu.ifpb.scm.api.loads.Loader.java

public static void showFileDiffs(Git gitRepository) {
    Repository repo = gitRepository.getRepository();

    try {/*w w  w.  java2s .co  m*/
        ObjectId head = ObjectId.fromString("c24af304077e4a6d1925db7cd35d0cd1ed488d6a");
        ObjectId previousHead = ObjectId.fromString("c16be41e77bb53a4b639cb864c9a6e4d0f8df7c2");
        ObjectReader reader = repo.newObjectReader();

        CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
        oldTreeIter.reset(reader, previousHead);
        CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
        newTreeIter.reset(reader, head);

        List<DiffEntry> listDiffs = gitRepository.diff().setOldTree(oldTreeIter).setNewTree(newTreeIter).call();

        listDiffs.stream().forEach((DiffEntry diff) -> {

            DiffFormatter formatter = new DiffFormatter(System.out);
            formatter.setRepository(repo);
            System.out.println(diff);
            try {
                formatter.format(diff);
            } catch (IOException ex) {
                Logger.getLogger(Loader.class.getName()).log(Level.SEVERE, null, ex);
            }
        });
    } catch (IOException | GitAPIException ex) {
        Logger.getLogger(Loader.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:br.edu.ifpb.scm.api.loads.LoaderVersions.java

public static void teste2() throws IOException, GitAPIException {
    org.eclipse.jgit.api.Git git = org.eclipse.jgit.api.Git.open(PATH);
    org.eclipse.jgit.lib.Repository repository = git.getRepository();

    repository.findRef(URL);/* www.  j a  v a 2  s  .  co  m*/

    ObjectId oldHead = repository.resolve("HEAD~^{tree}");
    ObjectId newHead = repository.resolve("HEAD^{tree}");

    ObjectReader reader = repository.newObjectReader();
    CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
    //        ObjectId oldTree = git.getRepository().resolve("SHA-1{64c852a8fe9e3673aa381f95c4b0420986d1f925}");

    CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
    //        ObjectId newTree = git.getRepository().resolve("SHA-1{12ae7a9960c49cfe68bdd5f7b0a58e1b3b0c6e56}");

    oldTreeIter.reset(reader, oldHead);
    newTreeIter.reset(reader, newHead);

    try (org.eclipse.jgit.api.Git g = new org.eclipse.jgit.api.Git(repository)) {
        List<DiffEntry> diffs = g.diff().setNewTree(newTreeIter).setOldTree(oldTreeIter).call();
        for (DiffEntry entry : diffs) {
            System.out.println("Entry: " + entry);
        }
    }

    //        DiffFormatter diffFormatter = new DiffFormatter(DisabledOutputStream.INSTANCE);
    //        diffFormatter.setRepository(git.getRepository());
    //        List<DiffEntry> entries = diffFormatter.scan(oldTreeIter, newTreeIter);
    //
    //        entries.stream().forEach((entry) -> {
    //            System.out.println(entry.getChangeType());
    //        });
}

From source file:br.edu.ifpb.scm.api.loads.LoaderVersions.java

public static void capturaOCodigoDeCadaHashDaArvoreDeArquivos() throws IOException {
    org.eclipse.jgit.api.Git git = org.eclipse.jgit.api.Git.open(PATH);
    try (org.eclipse.jgit.lib.Repository repository = git.getRepository()) {
        // The {tree} will return the underlying tree-id instead of the commit-id itself!
        // For a description of what the carets do see e.g. http://www.paulboxley.com/blog/2011/06/git-caret-and-tilde
        // This means we are selecting the parent of the parent of the parent of the parent of current HEAD and
        // take the tree-ish of it
        //id da tree

        ObjectId oldHead = repository.resolve("HEAD{61c0f8c738b2ae20a91621337bffbfb164f7cc77}");
        ObjectId head = repository.resolve("HEAD^^{tree}");

        //Pegando o codigo de cada commit pra arvore
        System.out.println("Printing diff between tree: " + oldHead.getName() + " and " + head.getName());

    }/*from  w  ww  . j a  v a 2 s.co m*/
}

From source file:br.edu.ifpb.scm.api.loads.LoaderVersions.java

public static void funcionando(final String commit) throws IOException, GitAPIException {
    org.eclipse.jgit.api.Git git = org.eclipse.jgit.api.Git.open(PATH);
    try (org.eclipse.jgit.lib.Repository repository = git.getRepository()) {
        // The {tree} will return the underlying tree-id instead of the commit-id itself!
        // For a description of what the carets do see e.g. http://www.paulboxley.com/blog/2011/06/git-caret-and-tilde
        // This means we are selecting the parent of the parent of the parent of the parent of current HEAD and
        // take the tree-ish of it
        //id da tree
        // a RevWalk allows to walk over commits based on some filtering that is defined

        ObjectId obj = ObjectId.fromString(commit);
        RevWalk walk = new RevWalk(repository);
        RevCommit revCommit = walk.parseCommit(obj);

        RevCommit[] arra = revCommit.getParents();

        ObjectId obj2 = ObjectId.fromString(arra[0].getName());
        RevWalk walk2 = new RevWalk(repository);
        RevCommit revCommit2 = walk2.parseCommit(obj2);

        ObjectId oldHead = repository.resolve(revCommit2.getTree().getName());
        ObjectId head = repository.resolve(revCommit.getTree().getName());

        //Pegando o codigo de cada commit pra arvore
        System.out.println("Printing diff between tree: " + oldHead.getName() + " and " + head.getName());

        // prepare the two iterators to compute the diff between
        try (ObjectReader reader = repository.newObjectReader()) {
            CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
            oldTreeIter.reset(reader, oldHead);
            CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
            newTreeIter.reset(reader, head);

            // finally get the list of changed files
            try (org.eclipse.jgit.api.Git g = new org.eclipse.jgit.api.Git(repository)) {
                List<DiffEntry> diffs = g.diff().setNewTree(newTreeIter).setOldTree(oldTreeIter).call();
                diffs.stream().forEach((entry) -> {
                    System.out.println("Entry: " + entry);
                });/*from w w  w. j ava2  s .co m*/
            }
        }
    }

    System.out.println("Done");

}

From source file:ch.sbb.releasetrain.git.GitRepoImpl.java

License:Apache License

private Git checkoutOrCreateBranch(final Git git) {
    try {/* ww w . j  ava2 s. c o m*/
        if (!branch.equals(git.getRepository().getBranch())) {
            CheckoutCommand checkoutCommand = git.checkout().setCreateBranch(true).setName(branch)
                    .setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK);

            if (remoteBranchExists(git)) {
                checkoutCommand.setStartPoint("origin/" + branch);
            }
            checkoutCommand.call();
        }
    } catch (Exception e) {
        log.error(e.getMessage(), e);
    }
    return git;
}

From source file:com.athomas.androidkickstartr.util.GitHubber.java

License:Apache License

public Repository createCommit(File srcFolder, String applicationName) throws IOException, GitAPIException {
    Repository repository = repositoryService.createRepository(new Repository().setName(applicationName));

    String cloneUrl = repository.getCloneUrl();

    InitCommand init = new InitCommand();
    init.setDirectory(srcFolder);// w w  w .  j  a v a 2s  . c  om
    init.setBare(false);
    Git git = init.call();

    StoredConfig config = git.getRepository().getConfig();
    config.setString("remote", "origin", "url", cloneUrl);
    config.save();

    UsernamePasswordCredentialsProvider user = new UsernamePasswordCredentialsProvider(accessToken, "");
    git.add().addFilepattern(".").call();
    git.commit().setMessage(COMMIT_MESSAGE).call();
    git.push().setCredentialsProvider(user).call();

    return repository;
}

From source file:com.barchart.jenkins.cascade.PluginScmGit.java

License:BSD License

/**
 * Short name of current branch./*from   ww w  . j av a2 s.  co m*/
 */
public static String branch(final File workspace) {
    try {
        final Git git = Git.open(workspace);
        return git.getRepository().getBranch();
    } catch (final Throwable e) {
        throw new RuntimeException(e);
    }
}

From source file:com.barchart.jenkins.cascade.PluginScmGit.java

License:BSD License

/**
 * Spec name of current branch./*from w w  w  .j a v  a 2 s  . co m*/
 */
public static String branchSpec(final File workspace) {
    try {
        final Git git = Git.open(workspace);
        return git.getRepository().getFullBranch();
    } catch (final Throwable e) {
        throw new RuntimeException(e);
    }
}