Example usage for org.eclipse.jgit.storage.file FileRepositoryBuilder FileRepositoryBuilder

List of usage examples for org.eclipse.jgit.storage.file FileRepositoryBuilder FileRepositoryBuilder

Introduction

In this page you can find the example usage for org.eclipse.jgit.storage.file FileRepositoryBuilder FileRepositoryBuilder.

Prototype

FileRepositoryBuilder

Source Link

Usage

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

License:Open Source License

public static Git getGit(PropertyReader propertyReader, String repositoryName) throws IOException {
    Repository repoOS = new FileRepositoryBuilder()
            .setGitDir(new File(propertyReader.getLocalGitRoot() + repositoryName + File.separator + ".git"))
            .readEnvironment().setMustExist(true).build();

    return new Git(repoOS);
}

From source file:com.jaxio.celerio.output.GITStatusCrawler.java

License:Apache License

public static SCMStatus doStatus(File baseDir) throws RuntimeException {
    try {/*from  w w  w  . ja va  2s . c om*/
        Map<String, Boolean> map = new HashMap<String, Boolean>();

        FileRepositoryBuilder builder = new FileRepositoryBuilder();
        Repository repository = builder.setGitDir(new File(baseDir, ".git")).build();
        TreeWalk treeWalk = new TreeWalk(repository);
        treeWalk.addTree(getTree(repository));
        treeWalk.setRecursive(true);
        while (treeWalk.next()) {
            map.put(treeWalk.getPathString(), Boolean.TRUE);
        }

        log.info(
                "-----------------------------------------------------------------------------------------------");
        log.info("PROJECT IS UNDER GIT: Files tracked by git ({}) won't be overwritten/deleted by Celerio",
                map.size());
        log.info(
                "-----------------------------------------------------------------------------------------------");

        return new SCMStatus(map);
    } catch (IOException ioe) {
        throw new RuntimeException(ioe);
    }
}

From source file:com.kolich.blog.components.GitRepository.java

License:Open Source License

@Injectable
public GitRepository(@Required final ServletContext context, @Required final BlogEventBus eventBus)
        throws Exception {
    eventBus_ = eventBus;/*from  w  w w . java  2s  .  co  m*/
    executor_ = newSingleThreadScheduledExecutor(
            new ThreadFactoryBuilder().setDaemon(true).setNameFormat("blog-git-puller").build());
    final File repoDir = getRepoDir(context);
    logger__.info("Activated repository path: {}", repoDir.getCanonicalFile());
    // If were not in dev mode, and the clone path doesn't exist or we need to force clone from
    // scratch, do that now.
    final boolean clone = (!repoDir.exists() || shouldCloneOnStartup__);
    if (!isDevMode__ && clone) {
        logger__.info("Clone path does not exist, or we were asked to re-clone. Cloning from: {}",
                blogRepoCloneUrl__);
        // Recursively delete the existing clone of the repo, if it exists, and clone the repository.
        FileUtils.deleteDirectory(repoDir);
        Git.cloneRepository().setURI(blogRepoCloneUrl__).setDirectory(repoDir).setBranch("master").call();
    }
    // Construct a new pointer to the repository on disk.
    repo_ = new FileRepositoryBuilder().setWorkTree(repoDir).readEnvironment().build();
    git_ = new Git(repo_);
    logger__.info("Successfully initialized repository at: {}", repo_);
}

From source file:com.mpdeimos.ct_tests.history.HistoryAnalyzer.java

License:Apache License

/**
 * @param args/*from  ww  w . j  ava2  s  . c  om*/
 * @throws IOException 
 * @throws ConQATException 
 */
public static void main(String[] args) throws IOException, ConQATException {

    PatternList pl = new PatternList();
    pl.add(CommonUtils
            .compilePattern("(?is).*(fix|bug|defe(c|k)t|fehler|behoben|co(r|rr)ect|ko(r|rr)igier).*"));

    FileRepositoryBuilder builder = new FileRepositoryBuilder();
    File workTree = new File(path);
    FileRepository repository = builder.setWorkTree(workTree).build();

    ObjectId end = repository.resolve(ref);

    CommitFinder finder = new CommitFinder(repository);
    GitCommitListFilter filter = new GitCommitListFilter();
    finder.setFilter(filter);
    finder.findFrom(end);
    List<Commit> commits = filter.getCommits();
    Collections.reverse(commits);
    for (Commit commit : commits) {
        countCommits++;
        if (SuspectionOracle.isSuspicious(pl, commit)) {
            countFixes++;
        }
        fixesHistogram.add(commit.getDate(), countFixes / (double) countCommits);
    }

    System.out.println(countFixes / (double) countCommits);
    System.out.println(countFixes);
    System.out.println(countCommits);

    File output = new File(workTree, "historyAnalyze.csv");
    output.createNewFile();

    FileWriter fw = new FileWriter(output);
    fw.append("Commits;Fixes\n");
    fw.append(countCommits + ";" + countFixes + "\n\n");

    fw.append("Date;\"Relative Fixes\"\n");

    for (int i = 0; i < fixesHistogram.size(); i++) {
        Date d = fixesHistogram.getFirst(i);
        double r = fixesHistogram.getSecond(i);
        fw.append(String.format(Locale.US, "%d-%d-%d;%f\n", d.getYear() + 1900, d.getMonth() + 1,
                d.getDay() + 1, r));
    }
    fw.close();
}

From source file:com.mpdeimos.ct_tests.looper.GitRevisionLooper.java

License:Apache License

@AConQATParameter(name = "directory", minOccurrences = 1, maxOccurrences = 1, description = "working directory")
public void setRoot(@AConQATAttribute(name = "path", description = "git checkout path") String filename)
        throws ConQATException {
    this.root = new File(filename);
    if (!this.root.isDirectory())
        throw new ConQATException(filename + " needs to be a directory.");

    try {/*w  ww.ja v a2  s  .c o  m*/
        FileRepositoryBuilder builder = new FileRepositoryBuilder();
        repository = builder.setWorkTree(this.root).build();
    } catch (IOException e) {
        throw new ConQATException(filename + "/.git needs to be a directory.");
    }
}

From source file:com.mpdeimos.ct_tests.vcs.GitFileDiffTest.java

License:Apache License

@Test
public void testAddedFiles() {

    try {//w  w w .j a  v a2s.  c  o  m
        //         ArrayList<RevCommit> commits = new ArrayList<RevCommit>();
        //         
        //         Repository repository = new FileRepository(gitDir);
        FileRepositoryBuilder builder = new FileRepositoryBuilder();
        Repository repository = builder.setWorkTree(useTestFile("diff1")).build();
        ObjectId head = repository.resolve("new");
        //         TreeWalk treeWalk = TreeUtils.diffWithParents(repository, head);
        //         scan = DiffEntry.scan(treeWalk);
        //         treeWalk.release();

        CommitFinder finder = new CommitFinder(repository);
        GitCommitListFilter filter = new GitCommitListFilter();
        finder.setFilter(filter);
        finder.findFrom(head);
        for (Commit commit : filter.getCommits()) {
            //            ResetCommand reset = new Git(repository).reset();
            //            reset.setMode(ResetType.HARD);
            //            reset.setRef(commit.getId());
            CheckoutCommand checkout = new Git(repository).checkout();
            checkout.setName(commit.getId());
            //            checkout.setStartPoint(commit.getId());
            //            checkout.addPath(".");
            try {
                //               Ref call = reset.call();
                checkout.call();
                System.out.println(checkout.getResult().getStatus() + " checked out " + commit.getMessage());
            } catch (Exception e) {
                fail(e.getMessage());
            }

            //            System.out.println(change.getCommit().getFullMessage());

        }

        //         head = repository.resolve("HEAD~1");
        //         RevWalk revWalk = new RevWalk(repository);
        //         RevCommit tip = revWalk.parseCommit(head);
        //         revWalk.markStart(tip);
        //         revWalk.
        //         TreeWalk treeWalk = new TreeWalk(repository);
        //         treeWalk.setRecursive(true);
        //         treeWalk.addTree(tip.getTree());
        //         

        //         revWalk.markStart(tip);

        //         GitFileDiff[] compute = GitFileDiff.compute(treeWalk, tip);

        //         System.out.println(compute);

    } catch (Exception e) {
        fail(e.getMessage());
    }
}

From source file:com.mycila.maven.plugin.license.git.GitLookup.java

License:Apache License

/**
 * Creates a new {@link GitLookup} for a repository that is detected from the supplied {@code anyFile}.
 * <p>/*from  w  w w.  j a v a2s.  com*/
 * Note on time zones:
 *
 * @param anyFile
 *            - any path from the working tree of the git repository to consider in all subsequent calls to
 *            {@link #getYearOfLastChange(File)}
 * @param dateSource
 *            where to read the comit dates from - committer date or author date
 * @param timeZone
 *            the time zone if {@code dateSource} is {@link DateSource#COMMITER}; otherwise must be {@code null}.
 * @param checkCommitsCount
 * @throws IOException
 */
public GitLookup(File anyFile, DateSource dateSource, TimeZone timeZone, int checkCommitsCount)
        throws IOException {
    super();
    this.repository = new FileRepositoryBuilder().findGitDir(anyFile).build();
    /* A workaround for  https://bugs.eclipse.org/bugs/show_bug.cgi?id=457961 */
    this.repository.getObjectDatabase().newReader().getShallowCommits();

    this.pathResolver = new GitPathResolver(repository.getWorkTree().getAbsolutePath());
    this.dateSource = dateSource;
    switch (dateSource) {
    case COMMITER:
        this.timeZone = timeZone == null ? DEFAULT_ZONE : timeZone;
        break;
    case AUTHOR:
        if (timeZone != null) {
            throw new IllegalArgumentException(
                    "Time zone must be null with dateSource " + DateSource.AUTHOR.name()
                            + " because git author name already contrains time zone information.");
        }
        this.timeZone = null;
        break;
    default:
        throw new IllegalStateException("Unexpected " + DateSource.class.getName() + " " + dateSource);
    }
    this.checkCommitsCount = checkCommitsCount;
}

From source file:com.nirima.jenkins.GitStatus.java

License:Open Source License

public Status getStatus(File sourceDirectory) throws IOException {

    final FileRepository repository = new FileRepositoryBuilder().readEnvironment().findGitDir(sourceDirectory)
            .build();/*from ww  w  .  j a  v a 2s . c o  m*/

    ObjectId head = repository.resolve("HEAD");

    if (fetched.containsKey(head))
        return fetched.get(head);

    Status status = new Status(head, repository);
    fetched.put(head, status);
    return status;
}

From source file:com.nlbhub.nlb.vcs.GitAdapter.java

License:Open Source License

@Override
public void openRepo(String path) throws NLBVCSException {
    try {// ww  w  .  j a v a  2 s . com
        FileRepositoryBuilder builder = new FileRepositoryBuilder();
        m_localRepo = (builder.setWorkTree(new File(path)).readEnvironment() // scan environment GIT_* variables
                .setGitDir(new File(path, ".git")) // in fact, this can be omitted
                .build());
        enableLongPaths(m_localRepo, true);
        m_git = new Git(m_localRepo);
        initStatuses(true);
    } catch (IOException e) {
        throw new NLBVCSException("Error while Git repository opening", e);
    }
}

From source file:com.palantir.gerrit.gerritci.servlets.JobsServlet.java

License:Apache License

public Map<String, Map<String, String>> parseJobRequest(HttpServletRequest req, String projectName)
        throws JsonSyntaxException, IOException, NoSuchProjectException, NoFilepatternException,
        GitAPIException {//from   w  w  w. j a va2 s .c  o m
    Map<String, Map<String, String>> jobToParams = new HashMap<String, Map<String, String>>();

    File projectConfigDirectory = new File(sitePaths.etc_dir, projectName);
    if (!projectConfigDirectory.exists())
        projectConfigDirectory.mkdir();
    File projectConfigFile = new File(projectConfigDirectory, "created_jobs");
    if (!projectConfigFile.exists())
        projectConfigFile.createNewFile();

    JsonObject requestBody = (JsonObject) (new JsonParser()).parse(CharStreams.toString(req.getReader()));

    // get number of jobs
    // If all jobs are deleted, we must purge jobs
    int numOfJobs = requestBody.get("items").getAsJsonArray().size();

    ArrayList<String> receivedJobNames = new ArrayList<String>();

    if (numOfJobs < 1) {
        ArrayList<String> deletedJobs = updateProjectJobFiles(projectConfigFile, projectConfigDirectory,
                receivedJobNames);
        for (String deleted : deletedJobs) {
            jobToParams.put(deleted, null);
        }
        return jobToParams;
    }

    CurrentUser currentUser = this.projectControlFactory.controlFor(new NameKey(projectName)).getCurrentUser();
    String gitPath = getGitPath(sitePaths);
    File gitDir = new File(gitPath, projectName + ".git");
    Repository repository = new FileRepositoryBuilder().setGitDir(gitDir).build();
    ObjectInserter objectInserter = repository.newObjectInserter();
    HashMap<String, ObjectId> jobsToIds = new HashMap<String, ObjectId>();
    // assign file name and append to tree
    TreeFormatter treeFormatter = new TreeFormatter();
    // for each received job, create or rewrite its config file and add to
    // jobToParams
    for (int i = 0; i < numOfJobs; i++) {
        JsonObject jobObject = requestBody.get("items").getAsJsonArray().get(i).getAsJsonObject();
        String jobName = jobObject.get("jobName").toString();
        //Remove leading and trailing quotations ex. "jobname" becomes jobname
        jobName = jobName.substring(1, jobName.length() - 1);
        receivedJobNames.add(jobName);
        String type = jobObject.get("jobType").toString();
        type = type.substring(1, type.length() - 1);
        int numOfParams = jobObject.get("items").getAsJsonArray().size();
        JsonArray paramsArray = jobObject.get("items").getAsJsonArray();
        FileBasedConfig jobConfig = makeJobConfigFile(projectConfigDirectory, jobName, currentUser);
        Map<String, String> parsedParams = new HashMap<String, String>();
        parsedParams.put("projectName", projectName);
        for (int j = 0; j < numOfParams; j++) {
            String field = paramsArray.get(j).getAsJsonObject().get("field").toString();
            field = field.substring(1, field.length() - 1);
            String value = paramsArray.get(j).getAsJsonObject().get("value").toString();
            value = value.substring(1, value.length() - 1);
            parsedParams.put(field, value);
            // update jobconfig files
            jobConfig.setString("jobType", type, field, value);
        }
        jobConfig.save();
        jobsToIds.put(jobName, createGitFileId(repository, jobConfig, objectInserter, jobName));
        jobToParams.put(jobName, parsedParams);
    }
    for (String jobName : jobsToIds.keySet()) {
        treeFormatter.append(jobName + ".config", FileMode.REGULAR_FILE, jobsToIds.get(jobName));
    }
    ObjectId treeId = objectInserter.insert(treeFormatter);
    objectInserter.flush();
    updateProjectRef(treeId, objectInserter, repository, currentUser);
    // update or create project files for all jobs
    ArrayList<String> deletedJobs = updateProjectJobFiles(projectConfigFile, projectConfigDirectory,
            receivedJobNames);
    for (String deleted : deletedJobs) {
        jobToParams.put(deleted, null);
    }
    // returns map of job name to params
    return jobToParams;
}