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.hazelcast.simulator.utils.jars.GitSupport.java

License:Open Source License

private void fetchAllRepositories(Git git) throws GitAPIException {
    Repository repository = git.getRepository();
    Set<String> remotes = repository.getRemoteNames();
    for (String remoteRepository : remotes) {
        git.fetch().setRemote(remoteRepository).call();
    }//from ww  w  .j  a  v  a 2s  .  c  o m
}

From source file:com.hazelcast.simulator.utils.jars.GitSupport.java

License:Open Source License

private String checkoutRevision(Git git, String revision) throws GitAPIException, IOException {
    resetHard(git);//w  w w .  ja v a2  s  .c om
    git.checkout().setForce(true).setName(revision).setStartPoint(revision).call();
    return git.getRepository().resolve(revision).toObjectId().name();
}

From source file:com.hazelcast.utils.GitUtils.java

License:Open Source License

public static boolean compile(Invoker invoker, BufferingOutputHandler outputHandler, Git git, RevCommit commit,
        boolean isDry, boolean isEE) throws MavenInvocationException {
    String label = isEE ? "EE" : "OS";
    int counter = isEE ? COMPILE_COUNTER_EE.incrementAndGet() : COMPILE_COUNTER_OS.incrementAndGet();
    System.out.printf("[%s] [%3d] Compiling %s... ", label, counter, asString(commit));
    File projectRoot = git.getRepository().getDirectory().getParentFile();

    if (isDry) {//from   w  ww  . j a  v  a 2 s.c om
        printGreen("SUCCESS (dry run)");
        return true;
    }

    InvocationRequest request = new DefaultInvocationRequest().setBatchMode(true).setBaseDirectory(projectRoot)
            .setPomFile(new File(projectRoot, "pom.xml")).setGoals(asList("clean", "install", "-DskipTests"));

    long started = System.nanoTime();
    InvocationResult result = invoker.execute(request);
    long elapsedSeconds = TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - started);

    if (isDebug()) {
        outputHandler.printErrors();
    }
    outputHandler.clear();

    int exitCode = result.getExitCode();
    if (exitCode == 0) {
        printGreen("SUCCESS (%d seconds)", elapsedSeconds);
    } else {
        printRed("FAILURE (%d seconds)", elapsedSeconds);
    }
    return exitCode == 0;
}

From source file:com.hpe.application.automation.tools.octane.model.processors.scm.GitSCMProcessor.java

License:Open Source License

@Override
public CommonOriginRevision getCommonOriginRevision(final Run run) {
    //for phase 1 this is hard coded since its not possible to calculate it, and configuration from outside will complicate the feature
    //so for this phase we keep it hardcoded.
    CommonOriginRevision commonOriginRevision = new CommonOriginRevision();

    try {/* w w  w. j  a va 2 s.  co m*/
        final AbstractBuild abstractBuild = (AbstractBuild) run;
        FilePath workspace = ((AbstractBuild) run).getWorkspace();
        if (workspace != null) {
            commonOriginRevision = workspace.act(new FilePath.FileCallable<CommonOriginRevision>() {
                @Override
                public CommonOriginRevision invoke(File file, VirtualChannel channel)
                        throws IOException, InterruptedException {
                    CommonOriginRevision result = new CommonOriginRevision();
                    File repoDir = new File(getRemoteString(abstractBuild) + File.separator + ".git");
                    Git git = Git.open(repoDir);
                    Repository repo = git.getRepository();
                    final RevWalk walk = new RevWalk(repo);

                    ObjectId resolveForCurrentBranch = repo.resolve(Constants.HEAD);
                    RevCommit currentBranchCommit = walk.parseCommit(resolveForCurrentBranch);
                    ObjectId resolveForMaster = repo.resolve(MASTER);
                    RevCommit masterCommit = walk.parseCommit(resolveForMaster);

                    walk.reset();
                    walk.setRevFilter(RevFilter.MERGE_BASE);
                    walk.markStart(currentBranchCommit);
                    walk.markStart(masterCommit);
                    final RevCommit base = walk.next();
                    if (base == null)
                        return result;
                    final RevCommit base2 = walk.next();
                    if (base2 != null) {
                        throw new NoMergeBaseException(
                                NoMergeBaseException.MergeBaseFailureReason.MULTIPLE_MERGE_BASES_NOT_SUPPORTED,
                                MessageFormat.format(JGitText.get().multipleMergeBasesFor,
                                        currentBranchCommit.name(), masterCommit.name(), base.name(),
                                        base2.name()));
                    }
                    result.revision = base.getId().getName();
                    result.branch = getBranchName(run);
                    return result;
                }

                @Override
                public void checkRoles(RoleChecker roleChecker) throws SecurityException {
                    if (roleChecker != null) {
                        logger.info("Note : roleChecker is not empty, but no action was taken");
                    }
                }
            });
        }
        logger.info("most recent common revision resolved to " + commonOriginRevision.revision + " (branch: "
                + commonOriginRevision.branch + ")");
    } catch (Exception e) {
        logger.error("failed to resolve most recent common revision", e);
        return commonOriginRevision;
    }
    return commonOriginRevision;
}

From source file:com.maiereni.sling.sources.git.GitProjectDownloader.java

License:Apache License

private void update(final Git git) throws Exception {
    logger.debug("Fetch from remote");
    FetchResult fr = git.fetch().call(); // .setRemote(url)
    Collection<Ref> refs = fr.getAdvertisedRefs();
    Iterable<RevCommit> logs = git.log().call();
    for (RevCommit rev : logs) {
        PersonIdent authorIdent = rev.getAuthorIdent();
        Date date = authorIdent.getWhen();
        String authName = authorIdent.getName();
        logger.debug("Commit at " + SDF.format(date) + " by " + authName + ": " + rev.getId().name() + " text: "
                + rev.getShortMessage());
    }/*  w ww .j ava2 s.com*/
    List<Note> notes = git.notesList().call();
    for (Ref ref : refs) {
        if (ref.getName().equals("HEAD")) {
            git.rebase().setUpstream(ref.getObjectId()).call();
            logger.debug("Rebase on HEAD");
            for (Note note : notes) {
                if (note.getName().equals(ref.getObjectId().getName())) {
                    logger.debug("Found note: " + note + " for commit " + ref.getName());
                    // displaying the contents of the note is done via a simple blob-read
                    ObjectLoader loader = git.getRepository().open(note.getData());
                    loader.copyTo(System.out);
                }
            }
        }
    }
}

From source file:com.maiereni.synchronizer.git.utils.GitDownloaderImpl.java

License:Apache License

private List<Change> checkDifferences(final Git git, final Ref localBranch, final Ref head) throws Exception {
    List<Change> ret = new ArrayList<Change>();
    Repository repository = git.getRepository();

    AbstractTreeIterator oldTreeParser = prepareTreeParser(repository, localBranch);
    AbstractTreeIterator newTreeParser = prepareTreeParser(repository, head);
    List<DiffEntry> diffs = git.diff().setOldTree(oldTreeParser).setNewTree(newTreeParser).call();

    for (DiffEntry diff : diffs) {
        Change change = new Change();
        change.setPathNew(diff.getNewPath());
        change.setPathOld(diff.getOldPath());
        change.setChangeType(ChangeType.valueOf(diff.getChangeType().name()));
        ret.add(change);/* w  ww.jav  a 2 s  . c o  m*/
    }
    return ret;
}

From source file:com.mangosolutions.rcloud.rawgist.repository.git.CreateOrUpdateGistOperation.java

private Grgit initialiseRepo(Grgit git) {
    Git jgit = git.getRepository().getJgit();
    if (jgit.getRepository().isBare()) {
        OpenOp openOp = new OpenOp();
        openOp.setDir(this.getLayout().getBareFolder());
        git = openOp.call();//from  w  w  w. j  av a2s  .  c o m
    }
    File workingFolder = getWorkTree(git);
    if (!workingFolder.exists()) {
        try {
            FileUtils.forceMkdir(workingFolder);
        } catch (IOException e) {
            GistError error = new GistError(GistErrorCode.FATAL_GIST_INITIALISATION,
                    "Could not initialise gist repository with id {}", this.getGistId());
            logger.error(error.getFormattedMessage() + " with folder path {}", workingFolder, e);
            throw new GistRepositoryException(error, e);
        }
    }
    return git;
}

From source file:com.mangosolutions.rcloud.rawgist.repository.git.CreateOrUpdateGistOperation.java

private BareRmCommand applyRmPath(BareRmCommand rmCommand, String filename, Grgit git, DirCache index) {
    if (rmCommand == null) {
        Git jgit = git.getRepository().getJgit();
        rmCommand = new BareRmCommand(jgit.getRepository(), index);
    }/*from www .j  a v a  2 s.c  o  m*/
    return rmCommand.addFilepattern(filename);
}

From source file:com.mangosolutions.rcloud.rawgist.repository.git.CreateOrUpdateGistOperation.java

private BareAddCommand applyAddPath(BareAddCommand addCommand, String filename, File workingFolder, Grgit git,
        DirCache index) {//from  w w w.  j ava 2  s  . c o  m
    if (addCommand == null) {
        Git jgit = git.getRepository().getJgit();

        FileTreeIterator iterator = getFileTreeIterator(jgit, workingFolder);
        addCommand = new BareAddCommand(jgit.getRepository());
        addCommand.setWorkingTreeIterator(iterator);
        addCommand.addDirCache(index);
    }
    return addCommand.addFilepattern(filename);
}

From source file:com.mangosolutions.rcloud.rawgist.repository.git.CreateOrUpdateGistOperation.java

private FileTreeIterator getFileTreeIterator(Git jgit, File workingFolder) {

    FileModeStrategy fileModeStrategy = jgit.getRepository().getConfig().get(WorkingTreeOptions.KEY)
            .isDirNoGitLinks() ? NoGitlinksStrategy.INSTANCE : DefaultFileModeStrategy.INSTANCE;

    FileTreeIterator iterator = new FileTreeIterator(workingFolder, jgit.getRepository().getFS(),
            jgit.getRepository().getConfig().get(WorkingTreeOptions.KEY), fileModeStrategy);

    return iterator;
}