List of usage examples for org.eclipse.jgit.storage.file FileRepositoryBuilder FileRepositoryBuilder
FileRepositoryBuilder
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; }