List of usage examples for org.eclipse.jgit.lib Repository newObjectReader
@NonNull
public ObjectReader newObjectReader()
From source file:org.kuali.student.git.model.TestKSRevision27974.java
License:Educational Community License
@Test public void testRevision27974() throws IOException { File gitRepository = new File("target/ks-r27974"); FileUtils.deleteDirectory(gitRepository); Repository repository = GitRepositoryUtils.buildFileRepository(gitRepository, true); GitImporterMain/*from www . j ava2 s . com*/ .main(new String[] { "src/test/resources/ks-r27974.dump.bz2", gitRepository.getAbsolutePath(), "target/ks-r27974-ks-veto.log", "target/ks-r27974-ks-copyFrom-skipped.log", "target/ks-r27974-blob.log", "0", "https://svn.kuali.org/repos/student", "uuid" }); // get the fusion-maven-plugin.dat file and check its contents are what we expect. SvnRevisionMapper revisionMapper = new SvnRevisionMapper(repository); revisionMapper.initialize(); List<SvnRevisionMap> heads = revisionMapper.getRevisionHeads(27974L); Assert.assertNotNull(heads); Assert.assertEquals(1, heads.size()); SvnRevisionMap revMap = heads.get(0); ObjectId branchHead = ObjectId.fromString(revMap.getCommitId()); RevWalk rw = new RevWalk(repository); RevCommit commit = rw.parseCommit(branchHead); TreeWalk tw = new TreeWalk(repository); tw.addTree(commit.getTree().getId()); Assert.assertTrue("should have been one file", tw.next()); Assert.assertEquals(FileMode.REGULAR_FILE, tw.getFileMode(0)); ObjectId blobId = tw.getObjectId(0); ObjectLoader loader = repository.newObjectReader().open(blobId, Constants.OBJ_BLOB); List<String> lines = IOUtils.readLines(loader.openStream(), "UTF-8"); Assert.assertEquals(2, lines.size()); String firstLine = lines.get(0); Assert.assertEquals( "# module = ks-api branch Path = sandbox/ks-1.3-core-slice-demo/modules/ks-api/trunk revision = 27974", firstLine); String secondLine = lines.get(1); Assert.assertEquals("ks-api::sandbox_ks-1.3-core-slice-demo_modules_ks-api_trunk::UNKNOWN", secondLine); tw.release(); rw.release(); revisionMapper.shutdown(); }
From source file:org.kuali.student.git.model.tree.utils.GitTreeProcessor.java
License:Educational Community License
/** * /*from ww w . ja v a2s . com*/ */ public GitTreeProcessor(Repository repo) { this.repo = repo; this.nodeInitializer = new GitTreeNodeInitializerImpl(this); this.objectReader = repo.newObjectReader(); }
From source file:org.kuali.student.git.model.utils.GitTestUtils.java
License:Educational Community License
/** * Acquire the JGit ObjectLoader reference on the file in the branch in the repository we want. * /*from w w w . j av a2 s .c om*/ * This gives the caller the option of extracting it as a string or passing it as an InputStream into some other functionality. * * @param repository * @param branchName * @param filePath * @return the JGit ObjectLoader for the branch path given. * @throws IOException */ public static ObjectLoader loadFileContents(Repository repository, String branchName, String filePath) throws IOException { return repository.newObjectReader().open(findObjectIdInRefByPath(repository, branchName, filePath)); }
From source file:org.libx4j.maven.plugin.version.OriginalResolver.java
License:Open Source License
public OriginalResolver(final Repository repository) throws IncorrectObjectTypeException, IOException, MissingObjectException { // Resolve the revision specification final ObjectId id = repository.resolve(Constants.HEAD); this.reader = repository.newObjectReader(); this.walk = new RevWalk(reader); this.commit = walk.parseCommit(id); }
From source file:org.obiba.git.command.DiffCommand.java
License:Open Source License
@Override public Iterable<DiffEntry> execute(Git git) { Repository repository = git.getRepository(); ObjectReader reader = repository.newObjectReader(); try {//from w w w.j av a 2 s. c o m DiffCurrentPreviousTreeParsersFactory parsersFactory = new DiffCurrentPreviousTreeParsersFactory( repository, reader); return compareDiffTrees(repository, parsersFactory); } catch (IOException e) { throw new GitException(e); } finally { reader.release(); } }
From source file:org.omegat.core.team2.impl.GITRemoteRepository2.java
License:Open Source License
private static AbstractTreeIterator prepareTreeParser(Repository repository, ObjectId objId) throws Exception { // from the commit we can build the tree which allows us to construct // the TreeParser try (RevWalk walk = new RevWalk(repository)) { RevCommit commit = walk.parseCommit(objId); RevTree tree = walk.parseTree(commit.getTree().getId()); CanonicalTreeParser treeParser = new CanonicalTreeParser(); ObjectReader reader = repository.newObjectReader(); treeParser.reset(reader, tree.getId()); return treeParser; }//from ww w. j a v a2 s.c o m }
From source file:org.ossmeter.platform.vcs.git.GitManager.java
License:Open Source License
/** * To set the startRevision to the first commit, use 'null' * FIXME: This should HANDLE the exception probably.. *//*from w w w.ja v a 2 s .c o m*/ @Override public VcsRepositoryDelta getDelta(VcsRepository repository, String startRevision, String endRevision) throws Exception { // Clone into local repo Git git = getGit((GitRepository) repository); VcsRepositoryDelta vcsDelta = new VcsRepositoryDelta(); vcsDelta.setRepository(repository); Repository repo = git.getRepository(); RevWalk walk = new RevWalk(repo); Iterable<RevCommit> logs = git.log().call(); Iterator<RevCommit> iterator = logs.iterator(); boolean foundStart = false; boolean foundEnd = false; List<RevCommit> commits = new ArrayList<RevCommit>(); // Reorder the commits (currently they are latest first) while (iterator.hasNext()) { commits.add(0, walk.parseCommit(iterator.next())); } for (int i = 0; i < commits.size(); i++) { RevCommit commit = commits.get(i); RevCommit prevCommit = i - 1 < 0 ? null : commits.get(i - 1); if (startRevision == null || commit.getId().getName().equals(startRevision)) { foundStart = true; } if (commit.getId().getName().equals(endRevision)) { foundEnd = true; } VcsCommit vcsCommit = null; if (foundStart) { // Setup the meta data for the commit vcsCommit = new VcsCommit(); vcsCommit.setRevision(commit.getId().getName()); vcsCommit.setMessage(commit.getFullMessage()); vcsCommit.setAuthor(commit.getAuthorIdent().getName()); vcsCommit.setDelta(vcsDelta); int date = commit.getCommitTime(); long datelong = (long) date * (long) 1000; vcsCommit.setJavaDate(new java.util.Date(datelong)); vcsDelta.getCommits().add(vcsCommit); if (prevCommit != null) { // Do a diff against the succeeding commit ObjectId thisCommitId = repo.resolve(commit.getId().getName() + "^{tree}"); ObjectId prevCommitId = repo.resolve(prevCommit.getId().getName() + "^{tree}"); ObjectReader reader = repo.newObjectReader(); CanonicalTreeParser currentTreeIter = new CanonicalTreeParser(); currentTreeIter.reset(reader, thisCommitId); CanonicalTreeParser prevTreeIter = new CanonicalTreeParser(); prevTreeIter.reset(reader, prevCommitId); List<DiffEntry> diffs = git.diff().setNewTree(currentTreeIter).setOldTree(prevTreeIter).call(); for (DiffEntry diff : diffs) { VcsChangeType change = convertChangeType(diff.getChangeType()); if (change == null) continue; VcsCommitItem item = new VcsCommitItem(); String path = diff.getNewPath(); if (change.equals(VcsChangeType.DELETED)) { path = diff.getOldPath(); } item.setPath(path); item.setChangeType(change); item.setCommit(vcsCommit); vcsCommit.getItems().add(item); } } else { // First commit: everything is ADDED // vcsCommit = new VcsCommit(); TreeWalk treeWalk = new TreeWalk(repo); treeWalk.addTree(commit.getTree()); while (treeWalk.next()) { if (treeWalk.isSubtree()) { treeWalk.enterSubtree(); } else { VcsCommitItem item = new VcsCommitItem(); item.setPath(treeWalk.getPathString()); item.setChangeType(VcsChangeType.ADDED); item.setCommit(vcsCommit); vcsCommit.getItems().add(item); } } } } if (foundEnd) { break; } } return vcsDelta; }
From source file:org.repodriller.scm.GitRepository.java
License:Apache License
private String getSourceCode(Repository repo, DiffEntry diff) throws IOException { if (!collectConfig.isCollectingSourceCode()) return ""; try {// w ww . j a v a 2 s.c o m ObjectReader reader = repo.newObjectReader(); byte[] bytes = reader.open(diff.getNewId().toObjectId()).getBytes(); return new String(bytes, "utf-8"); } catch (Throwable e) { return ""; } }
From source file:org.uberfire.java.nio.fs.jgit.util.commands.RefTreeUpdateCommand.java
License:Apache License
private void commit(final Repository repo, final RevCommit original, final BiFunction fun) throws IOException { try (final ObjectReader reader = repo.newObjectReader(); final ObjectInserter inserter = repo.newObjectInserter(); final RevWalk rw = new RevWalk(reader)) { final RefTreeDatabase refdb = (RefTreeDatabase) repo.getRefDatabase(); final RefDatabase bootstrap = refdb.getBootstrap(); final RefUpdate refUpdate = bootstrap.newUpdate(refdb.getTxnCommitted(), false); final CommitBuilder cb = new CommitBuilder(); final Ref ref = bootstrap.exactRef(refdb.getTxnCommitted()); final RefTree tree; if (ref != null && ref.getObjectId() != null) { tree = RefTree.read(reader, rw.parseTree(ref.getObjectId())); cb.setParentId(ref.getObjectId()); refUpdate.setExpectedOldObjectId(ref.getObjectId()); } else {//from w w w. ja v a 2s . c o m tree = RefTree.newEmptyTree(); refUpdate.setExpectedOldObjectId(ObjectId.zeroId()); } if (fun.apply(reader, tree)) { final Ref ref2 = bootstrap.exactRef(refdb.getTxnCommitted()); if (ref2 == null || ref2.getObjectId().equals(ref != null ? ref.getObjectId() : null)) { cb.setTreeId(tree.writeTree(inserter)); if (original != null) { cb.setAuthor(original.getAuthorIdent()); cb.setCommitter(original.getAuthorIdent()); } else { final PersonIdent personIdent = new PersonIdent("user", "user@example.com"); cb.setAuthor(personIdent); cb.setCommitter(personIdent); } refUpdate.setNewObjectId(inserter.insert(cb)); inserter.flush(); final RefUpdate.Result result = refUpdate.update(rw); switch (result) { case NEW: case FAST_FORWARD: break; default: throw new RuntimeException( repo.getDirectory() + " -> " + result.toString() + " : " + refUpdate.getName()); } final File commited = new File(repo.getDirectory(), refdb.getTxnCommitted()); final File accepted = new File(repo.getDirectory(), refdb.getTxnNamespace() + "accepted"); Files.copy(commited.toPath(), accepted.toPath(), StandardCopyOption.REPLACE_EXISTING); } } } }
From source file:org.uberfire.java.nio.fs.jgit.util.commands.SubdirectoryClone.java
License:Apache License
public Git execute() { final Git git = new Clone(repoDir, origin, false, branches, credentialsProvider, leaders, hookDir, sslVerify).execute().get();//from w ww. j a v a 2 s .c om final Repository repository = git.getRepository(); try (final ObjectReader reader = repository.newObjectReader(); final ObjectInserter inserter = repository.newObjectInserter()) { // Map all transformed commits that are non-empty so that we can properly map parents final Map<ObjectId, ObjectId> commitMap = new HashMap<>(); final RevWalk revWalk = createRevWalk(repository, reader); transformBranches(repository, reader, inserter, revWalk, commitMap); overrideBranchNames(repository, revWalk, commitMap); removeOriginRemote(repository); return git; } catch (Exception e) { String message = String.format("Error cloning origin <%s> with subdirectory <%s>.", origin, subdirectory); logger.error(message); cleanupDir(git.getRepository().getDirectory()); throw new Clone.CloneException(message, e); } }