List of usage examples for org.eclipse.jgit.lib ObjectId fromString
public static ObjectId fromString(String str)
From source file:ShowFileDiff.java
License:Apache License
private static AbstractTreeIterator prepareTreeParser(Repository repository, String objectId) throws IOException, MissingObjectException, IncorrectObjectTypeException { // from the commit we can build the tree which allows us to construct the TreeParser RevWalk walk = new RevWalk(repository); RevCommit commit = walk.parseCommit(ObjectId.fromString(objectId)); RevTree tree = walk.parseTree(commit.getTree().getId()); CanonicalTreeParser oldTreeParser = new CanonicalTreeParser(); ObjectReader oldReader = repository.newObjectReader(); try {//from w w w. jav a2 s .c om oldTreeParser.reset(oldReader, tree.getId()); } finally { oldReader.release(); } walk.dispose(); return oldTreeParser; }
From source file:at.bitandart.zoubek.mervin.gerrit.GitURIParser.java
License:Open Source License
/** * loads the referenced commit/*ww w . j ava 2 s . c o m*/ * * @throws IOException * if an error occurs during parsing the URI */ private void loadCommit() throws IOException { if (repository == null) loadRepository(); RevWalk revWalk = new RevWalk(repository); commit = revWalk.parseCommit(ObjectId.fromString(commitHash)); revWalk.close(); }
From source file:au.id.soundadvice.systemdesign.versioning.jgit.GitVersionControl.java
License:Open Source License
@Override public Optional<BufferedReader> getBufferedReader(IdentityValidator identityValidator, String filename, Optional<VersionInfo> version) throws IOException { if (version.isPresent()) { Pair<String, ObjectId> diff = diffCache.get(); if (!version.get().getId().equals(diff.getKey())) { // Grab the id of the commit we are trying to diff against ObjectId id = ObjectId.fromString(version.get().getId()); RevWalk revWalk = new RevWalk(repo.getRepository()); try { // Read the commit RevCommit commit = revWalk.parseCommit(id); ObjectId matchedDirectory = findMatchingIdentity(identityValidator, commit.getTree()); diff = new Pair<>(version.get().getId(), matchedDirectory); diffCache.set(diff);// w ww .j a v a 2 s. c o m } finally { revWalk.release(); } } if (ObjectId.zeroId().equals(diff.getValue())) { // No such tree return Optional.empty(); } else { // Find the file in this tree TreeWalk treeWalk = new TreeWalk(repo.getRepository()); try { treeWalk.setRecursive(false); treeWalk.addTree(diff.getValue()); while (treeWalk.next()) { if (filename.equals(treeWalk.getNameString())) { // Read the file ObjectLoader loader = repo.getRepository().open(treeWalk.getObjectId(0)); ObjectStream stream = loader.openStream(); InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8); return Optional.of(new BufferedReader(reader)); } } // No such file return Optional.empty(); } finally { treeWalk.release(); } } } else { Path path = identityValidator.getDirectoryPath().resolve(filename); if (Files.exists(path)) { return Optional.of(Files.newBufferedReader(path)); } else { return Optional.empty(); } } }
From source file:br.com.riselabs.cotonet.util.CodefaceHelper.java
License:Open Source License
private static void createMergeBasedTags(Project project) throws IOException { Map<String, String> tagsMap; MergeScenarioDAO dao = new MergeScenarioDAO(); Repository repository = project.getRepository(); List<MergeScenario> scenarios = new ArrayList<MergeScenario>(); try {//from w w w . j a v a2s .com scenarios = dao.list(project.getID()); } catch (InvalidCotonetBeanException e1) { Logger.logStackTrace(e1); } try (Git git = new Git(repository)) { // remove existing tags for (String tag : repository.getTags().keySet()) { git.tagDelete().setTags(tag).call(); } } catch (GitAPIException e) { Logger.logStackTrace(e); } tagsMap = new HashMap<String, String>(); for (MergeScenario scenario : scenarios) { String tagT = project.getName() + "T" + scenario.getID(); String tagB = project.getName() + "B" + scenario.getID(); tagsMap.put(tagB, scenario.getSHA1Merge()); RevCommit earlier = getEarlierCommit(project.getRepository(), scenario.getSHA1Merge(), 3); tagsMap.put(tagT, earlier.getName()); // prepare test-repository try (Git git = new Git(repository)) { try (RevWalk walk = new RevWalk(repository)) { ObjectId refCommitID = ObjectId.fromString(scenario.getSHA1Merge()); RevCommit refCommit = walk.parseCommit(refCommitID); git.tag().setObjectId(refCommit).setName(tagB).call(); git.tag().setObjectId(earlier).setName(tagT).call(); walk.dispose(); } catch (ConcurrentRefUpdateException e) { e.printStackTrace(); } catch (InvalidTagNameException e) { e.printStackTrace(); } catch (NoHeadException e) { e.printStackTrace(); } catch (GitAPIException e) { e.printStackTrace(); } } catch (RevisionSyntaxException e) { Logger.logStackTrace(e); } } try { createTagToSHA1MappingFile(project.getName(), tagsMap); } catch (NullPointerException | EmptyContentException e) { Logger.logStackTrace(e); } }
From source file:br.com.riselabs.cotonet.util.CodefaceHelper.java
License:Open Source License
/** * Returns a commit from the given repository dated {@code i} months * earlier./* www.ja v a2s .c o m*/ * * @param repo * @param refCommit * @param i * @return * @throws IOException * @throws IncorrectObjectTypeException * @throws MissingObjectException */ private static RevCommit getEarlierCommit(Repository repo, String refCommit, int i) throws MissingObjectException, IncorrectObjectTypeException, IOException { RevCommit result = null; try (RevWalk rw = new RevWalk(repo)) { ObjectId refID = ObjectId.fromString(refCommit); RevCommit base = rw.parseCommit(refID); rw.markStart(base); Date baseDate = base.getAuthorIdent().getWhen(); Instant instant = baseDate.toInstant(); ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault()); LocalDate reference = zdt.toLocalDate(); RevCommit aux; while ((aux = rw.next()) != null) { Date resultDate = aux.getAuthorIdent().getWhen(); instant = resultDate.toInstant(); zdt = instant.atZone(ZoneId.systemDefault()); LocalDate imonths = zdt.toLocalDate(); long days = ChronoUnit.DAYS.between(imonths, reference); if ((days % 30) > i) { return aux; } else { // in case it reaches the beginning of the tree returns the // last commit result = aux; } } rw.close(); } return result; }
From source file:br.edu.ifpb.scm.api.loads.Loader.java
public static void showFileDiffs(Git gitRepository) { Repository repo = gitRepository.getRepository(); try {/*from www . ja v a 2 s . c o 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 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); });/* w ww. jav a 2 s . c o m*/ } } } System.out.println("Done"); }
From source file:com.amd.gerrit.plugins.manifestsubscription.ManifestSubscription.java
License:Open Source License
@Override public void onGitReferenceUpdated(Event event) { String projectName = event.getProjectName(); String refName = event.getRefName(); String branchName = refName.startsWith("refs/heads/") ? refName.substring(11) : ""; ProjectBranchKey pbKey = new ProjectBranchKey(projectName, branchName); if (event.getNewObjectId().equals(ObjectId.zeroId().toString())) { // This happens when there's a branch deletion and possibly other events log.info("Project: " + projectName + "\nrefName: " + refName); } else if (REFS_CONFIG.equals(refName)) { // possible change in enabled repos processProjectConfigChange(event); } else if (enabledManifestSource.containsKey(projectName) && enabledManifestSource.get(projectName).getBranches().contains(branchName)) { processManifestChange(event, projectName, branchName); } else if (subscribedRepos.containsRow(pbKey)) { //updates in subscribed repos // Manifest store and branch Map<String, Map<String, Set<com.amd.gerrit.plugins.manifestsubscription.manifest.Project>>> destinations = subscribedRepos .row(pbKey);/*from w ww.j av a2 s . c o m*/ for (String store : destinations.keySet()) { for (String storeBranch : destinations.get(store).keySet()) { Set<com.amd.gerrit.plugins.manifestsubscription.manifest.Project> ps = destinations.get(store) .get(storeBranch); Manifest manifest = manifestStores.get(store, storeBranch); String manifestSrc = manifestSource.get(store, storeBranch); StringBuilder extraCommitMsg = new StringBuilder(); Project.NameKey p = new Project.NameKey(projectName); try (Repository r = gitRepoManager.openRepository(p); RevWalk walk = new RevWalk(r)) { RevCommit c = walk.parseCommit(ObjectId.fromString(event.getNewObjectId())); extraCommitMsg.append(event.getNewObjectId().substring(0, 7)); extraCommitMsg.append(" "); extraCommitMsg.append(projectName); extraCommitMsg.append(" "); extraCommitMsg.append(c.getShortMessage()); } catch (IOException e) { e.printStackTrace(); } // these are project from the above manifest previously // cached in the lookup table for (com.amd.gerrit.plugins.manifestsubscription.manifest.Project updateProject : ps) { updateProject.setRevision(event.getNewObjectId()); } try { Utilities.updateManifest(gitRepoManager, metaDataUpdateFactory, changeHooks, store, STORE_BRANCH_PREFIX + storeBranch, manifest, manifestSrc, extraCommitMsg.toString(), null); } catch (JAXBException | IOException e) { e.printStackTrace(); } } } } }
From source file:com.amd.gerrit.plugins.manifestsubscription.ManifestSubscription.java
License:Open Source License
private ProjectConfig parseConfig(Project.NameKey p, String idStr) throws IOException, ConfigInvalidException { ObjectId id = ObjectId.fromString(idStr); if (ObjectId.zeroId().equals(id)) { return null; }/* w w w.ja va2 s .c om*/ return ProjectConfig.read(metaDataUpdateFactory.create(p), id); }
From source file:com.bacoder.integration.test.TestJerseySources.java
License:Apache License
public void testJerseySources() throws InitializationException, URISyntaxException, ProcessingException { GitRepository repository = new GitRepository(new URI("https://github.com/jersey/jersey.git"), new GitConfig().setCommitRevision(ObjectId.fromString("ce83e9bc94e153a22ecd6917d6885c897e58d61e")) .setProgressMonitor(new TextProgressMonitor())); repository.process(new GitEntryProcessor() { @Override/*from w ww.jav a 2 s .c o m*/ public void process(GitEntry entry) throws Exception { String extension = Files.getFileExtension(entry.getPath()); if ("java".equals(extension)) { LOG.info("Parsing: " + entry.getPath()); parseJava(entry.open().openStream()); } else if ("properties".equals(extension)) { LOG.info("Parsing: " + entry.getPath()); Properties properties = parseProperties(entry.open().openStream()); java.util.Properties expected = new java.util.Properties(); try { expected.load(entry.open().openStream()); } catch (Exception e) { throw new RuntimeException("Unable to load properties" + e); } for (KeyValue keyValue : properties.getKeyValues()) { String key = keyValue.getKey().getSanitizedText(); Assert.assertTrue(expected.containsKey(key), String.format("Key \"%s\" does not exist in expected Java properties", key)); String value = keyValue.getValue().getSanitizedText(); Assert.assertEquals(value, expected.get(key), String.format("Value \"%s\" does not match expected Java property value \"%s\"", value, expected.get(key))); } } } }); }