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:com.stormcloud.ide.api.git.GitManager.java

License:Open Source License

@Override
public boolean isModified(String repository) throws GitManagerException {

    try {/*from   w ww . ja va 2s .  c o  m*/

        Git git = Git.open(new File(repository));

        IndexDiff diff = new IndexDiff(git.getRepository(), "HEAD", new FileTreeIterator(git.getRepository()));

        diff.diff();

        if (!diff.getAdded().isEmpty()) {
            return true;
        }

        if (!diff.getChanged().isEmpty()) {
            return true;
        }

        if (!diff.getMissing().isEmpty()) {
            return true;
        }

        if (!diff.getModified().isEmpty()) {
            return true;
        }

        if (!diff.getRemoved().isEmpty()) {
            return true;
        }

        if (!diff.getUntracked().isEmpty()) {
            return true;
        }

        if (!diff.getUntrackedFolders().isEmpty()) {
            return true;
        }

    } catch (IOException e) {
        LOG.error(e);
        throw new GitManagerException(e);
    }

    return false;
}

From source file:com.stormcloud.ide.api.git.GitManager.java

License:Open Source License

@Override
public String getStatus(String file, String userHome) throws GitManagerException {

    String tmpRelativePath = new File(file).getAbsolutePath().replaceFirst(userHome + "/projects", "")
            .replaceFirst("/", "");

    String project;/* w ww .j  av  a2 s  .  c  o  m*/

    if (tmpRelativePath.contains("/")) {

        project = tmpRelativePath.substring(0, tmpRelativePath.indexOf('/'));

    } else {

        project = tmpRelativePath;
    }

    String repository = userHome + "/projects/" + project;
    String relativePath = tmpRelativePath.replaceFirst(project, "").replaceFirst("/", "");

    String status = "unmodified";

    try {

        Git git = Git.open(new File(repository));

        IndexDiff diff = new IndexDiff(git.getRepository(), "HEAD", new FileTreeIterator(git.getRepository()));

        diff.setFilter(PathFilterGroup.createFromStrings(relativePath));

        diff.diff();

        if (!diff.getModified().isEmpty() || !diff.getChanged().isEmpty()) {
            return "modified";
        }

        if (!diff.getMissing().isEmpty() || !diff.getRemoved().isEmpty()) {
            return "missing";
        }

        if (!diff.getUntracked().isEmpty() || !diff.getUntrackedFolders().isEmpty()
                || !diff.getAdded().isEmpty()) {

            return "untracked";
        }

        if (!diff.getConflicting().isEmpty()) {
            return "conflict";
        }

        return status;

    } catch (IOException e) {
        LOG.error(e);
        throw new GitManagerException(e);
    }
}

From source file:com.surevine.gateway.scm.git.jgit.JGitGitFacade.java

License:Open Source License

@Override
public Map<String, String> getRemotes(final LocalRepoBean repoBean) throws GitException {
    Map<String, String> remotes = new HashMap<String, String>();
    try {/*from   www . j a v  a2  s  . c  o  m*/
        FileRepositoryBuilder builder = new FileRepositoryBuilder();
        Repository repository = builder.setGitDir(repoBean.getGitConfigDirectory().toFile()).findGitDir()
                .build();
        Git git = new org.eclipse.jgit.api.Git(repository);
        StoredConfig config = git.getRepository().getConfig();
        Set<String> remoteNames = config.getSubsections("remote");
        for (String remoteName : remoteNames) {
            remotes.put(remoteName, config.getString("remote", remoteName, "url"));
        }
    } catch (IOException e) {
        LOGGER.error(e);
        throw new GitException(e);
    }
    return remotes;
}

From source file:com.surevine.gateway.scm.git.jgit.JGitGitFacade.java

License:Open Source License

@Override
public void addRemote(final LocalRepoBean repoBean, final String remoteName, final String remoteURL)
        throws GitException {
    try {/*from   w  w w  .  j ava2s . co m*/
        FileRepositoryBuilder builder = new FileRepositoryBuilder();
        Repository repository = builder.setGitDir(repoBean.getGitConfigDirectory().toFile()).findGitDir()
                .build();
        Git git = new org.eclipse.jgit.api.Git(repository);
        StoredConfig config = git.getRepository().getConfig();
        config.setString("remote", remoteName, "url", remoteURL);
        config.setString("remote", remoteName, "fetch",
                String.format("+refs/heads/*:refs/remotes/%s/*", remoteName));
        config.save();

    } catch (IOException e) {
        LOGGER.error(e);
        throw new GitException(e);
    }
}

From source file:com.tasktop.c2c.server.internal.profile.service.template.GitServiceCloner.java

License:Open Source License

private void copyRepo(ScmRepository scmRepo, CloneContext context)
        throws IOException, JGitInternalException, GitAPIException {

    File workDirectory = null;/* www .java 2 s  .c o m*/
    try {
        Project templateProject = context.getTemplateService().getProjectServiceProfile().getProject();
        String cloneUrl = jgitProvider.computeRepositoryUrl(templateProject.getIdentifier(), scmRepo.getName());

        AuthUtils.assumeSystemIdentity(templateProject.getIdentifier());
        tenancyManager.establishTenancyContext(context.getTemplateService());

        workDirectory = createTempDirectory();
        Git git = Git.cloneRepository().setDirectory(workDirectory)
                .setBranch(Constants.R_HEADS + Constants.MASTER).setURI(cloneUrl).call();

        AuthUtils.assumeSystemIdentity(
                context.getTargetService().getProjectServiceProfile().getProject().getIdentifier());
        tenancyManager.establishTenancyContext(context.getTargetService());

        FileUtils.deleteDirectory(git.getRepository().getDirectory());

        git = Git.init().setDirectory(git.getRepository().getDirectory().getParentFile()).call();

        maybeRewriteRepo(workDirectory, context);

        String pushUrl = jgitProvider.computeRepositoryUrl(
                context.getTargetService().getProjectServiceProfile().getProject().getIdentifier(),
                scmRepo.getName());

        // FIXME: User's locale is not defined here
        String commitMessage = messageSource.getMessage("project.template.git.commitMessage",
                new Object[] { templateProject.getName() }, null);

        git.add().addFilepattern(".").call();
        git.commit().setCommitter(committerName, committerEmail).setMessage(commitMessage).call();
        git.getRepository().getConfig().setString("remote", "target", "url", pushUrl);
        git.push().setRemote("target").setPushAll().call();
    } finally {
        if (workDirectory != null) {
            FileUtils.deleteDirectory(workDirectory);
        }
    }
}

From source file:com.tasktop.c2c.server.scm.service.GitServiceBean.java

License:Open Source License

/**
 * @param repo//from  w ww .j  a v a  2s. co m
 * @param git
 */
private void setBranchesAndTags(ScmRepository repo, Git git) {
    repo.setBranches(new ArrayList<String>());
    try {
        for (Ref ref : git.branchList().call()) {
            String refName = ref.getName();
            if (refName.startsWith(Constants.R_HEADS)) {
                refName = refName.substring(Constants.R_HEADS.length());
            }
            repo.getBranches().add(refName);
        }
    } catch (GitAPIException e) {
        throw new JGitInternalException(e.getMessage(), e);
    }

    RevWalk revWalk = new RevWalk(git.getRepository());
    Map<String, Ref> refList;
    repo.setTags(new ArrayList<String>());
    try {
        refList = git.getRepository().getRefDatabase().getRefs(Constants.R_TAGS);
        for (Ref ref : refList.values()) {
            repo.getTags().add(ref.getName().substring(Constants.R_TAGS.length()));
        }
    } catch (IOException e) {
        throw new JGitInternalException(e.getMessage(), e);
    } finally {
        revWalk.release();
    }
    Collections.sort(repo.getTags());

}

From source file:com.tasktop.c2c.server.scm.service.GitServiceBean.java

License:Open Source License

private List<ScmRepository> getExternalRepositories() throws IOException, URISyntaxException {
    List<ScmRepository> result = new ArrayList<ScmRepository>();

    File hostedDir = repositoryProvider.getTenantMirroredBaseDir();
    if (hostedDir != null && hostedDir.exists()) {
        for (String repoName : hostedDir.list()) {
            ScmRepository repo = new ScmRepository();
            repo.setName(repoName);/*w w  w . ja  v a2s . co  m*/
            repo.setScmLocation(ScmLocation.EXTERNAL);
            repo.setType(ScmType.GIT);

            Git git = Git.open(new File(hostedDir, repoName));
            RemoteConfig config = new RemoteConfig(git.getRepository().getConfig(),
                    Constants.DEFAULT_REMOTE_NAME);
            repo.setUrl(config.getURIs().get(0).toString());

            setBranchesAndTags(repo, git);

            result.add(repo);
        }
    }

    return result;
}

From source file:com.tasktop.c2c.server.scm.service.GitServiceBean.java

License:Open Source License

@Secured({ Role.Admin })
@Override//from   w  ww  . ja  va 2  s  .  c  o m
public void addExternalRepository(String url) {
    try {
        String repoName = getRepoDirNameFromExternalUrl(url);
        File dir = new File(repositoryProvider.getTenantMirroredBaseDir(), repoName);
        Git git = Git.init().setBare(true).setDirectory(dir).call();
        RemoteConfig config = new RemoteConfig(git.getRepository().getConfig(), Constants.DEFAULT_REMOTE_NAME);
        config.addURI(new URIish(url));
        config.update(git.getRepository().getConfig());
        git.getRepository().getConfig().save();
    } catch (JGitInternalException e) {
        throw new RuntimeException(e);
    } catch (URISyntaxException e) {
        throw new RuntimeException(e);
    } catch (IOException e) {
        throw new RuntimeException(e);
    } catch (GitAPIException e) {
        throw new RuntimeException(e);
    }

}

From source file:com.tasktop.c2c.server.scm.service.GitServiceTestBase.java

License:Open Source License

protected void commitAndPushFile(Git git, String path, String content, String message)
        throws GitAPIException, JGitInternalException, IOException {
    File f = new File(git.getRepository().getDirectory().getParentFile(), path);
    ensureDirExists(f.getParentFile());//from  w w  w .jav  a 2s .c o  m
    FileOutputStream writer = new FileOutputStream(f);
    writer.write(content.getBytes());
    writer.close();
    git.add().addFilepattern(path).call();
    git.commit().setMessage(message).call();
    git.push().call();
}

From source file:com.technophobia.substeps.mojo.runner.SubstepsRunnerMojoTest.java

License:Open Source License

@Test
public void testGitStuff() {

    FileRepositoryBuilder builder = new FileRepositoryBuilder();
    try {/* ww w  . j  a va2  s .  c o m*/
        Repository repository = builder.setGitDir(new File("/home/ian/projects/github/substeps-framework/.git"))
                .readEnvironment() // scan environment GIT_* variables
                .findGitDir() // scan up the file system tree
                .build();

        Git git = new Git(repository);

        String branchName = git.getRepository().getBranch();
        System.out.println("get branch: " + branchName);

        if (branchName != null) {
            System.setProperty("SUBSTEPS_CURRENT_BRANCHNAME", branchName);
        }

        Config cfg = Configuration.INSTANCE.getConfig();
        //

        System.out.println(cfg.getString("user.name"));

        System.out.println(cfg.getString("substeps.current.branchname"));

    } catch (Exception e) {
        System.out.println("Exception trying to get hold of the current branch: " + e.getMessage());
    }

}