Search in sources :

Example 36 with RevTree

use of org.eclipse.jgit.revwalk.RevTree in project gitiles by GerritCodeReview.

the class TimeCacheTest method taggedTreeAndBlobTime.

@Test
public void taggedTreeAndBlobTime() throws Exception {
    RevBlob blob = repo.blob("contents");
    RevTree tree = repo.tree(repo.file("foo", blob));
    repo.tick(1);
    RevTag blobTag = repo.tag("blob", blob);
    repo.tick(1);
    RevTag treeTag = repo.tag("tree", tree);
    assertThat(getTime(blobTag)).isEqualTo(start + 1);
    assertThat(getTime(treeTag)).isEqualTo(start + 2);
}
Also used : RevTag(org.eclipse.jgit.revwalk.RevTag) RevBlob(org.eclipse.jgit.revwalk.RevBlob) RevTree(org.eclipse.jgit.revwalk.RevTree) Test(org.junit.Test)

Example 37 with RevTree

use of org.eclipse.jgit.revwalk.RevTree in project gitiles by GerritCodeReview.

the class TimeCacheTest method treeAndBlobTime.

@Test
public void treeAndBlobTime() throws Exception {
    RevBlob blob = repo.blob("contents");
    RevTree tree = repo.tree(repo.file("foo", blob));
    assertThat(getTime(blob)).isEqualTo(Long.MIN_VALUE);
    assertThat(getTime(tree)).isEqualTo(Long.MIN_VALUE);
}
Also used : RevBlob(org.eclipse.jgit.revwalk.RevBlob) RevTree(org.eclipse.jgit.revwalk.RevTree) Test(org.junit.Test)

Example 38 with RevTree

use of org.eclipse.jgit.revwalk.RevTree in project searchcode-server by boyter.

the class GitService method fetchFileRevision.

/**
 * Given a repository location, revision and file path will retrieve that files contents. N.B. it returns the whole
 * file so you MAY end up running into serious memory issues, and should be aware of this
 */
public String fetchFileRevision(String repoLocation, String revision, String filePath) throws MissingObjectException, IncorrectObjectTypeException, IOException {
    Repository localRepository = new FileRepository(new File(repoLocation));
    ObjectId id = localRepository.resolve(revision);
    ObjectReader reader = localRepository.newObjectReader();
    try {
        RevWalk walk = new RevWalk(reader);
        RevCommit commit = walk.parseCommit(id);
        RevTree tree = commit.getTree();
        TreeWalk treewalk = TreeWalk.forPath(reader, filePath, tree);
        if (treewalk != null) {
            byte[] data = reader.open(treewalk.getObjectId(0)).getBytes();
            return new String(data, "utf-8");
        } else {
            return "";
        }
    } finally {
        reader.close();
    }
}
Also used : FileRepository(org.eclipse.jgit.internal.storage.file.FileRepository) FileRepository(org.eclipse.jgit.internal.storage.file.FileRepository) Repository(org.eclipse.jgit.lib.Repository) ObjectId(org.eclipse.jgit.lib.ObjectId) ObjectReader(org.eclipse.jgit.lib.ObjectReader) RevWalk(org.eclipse.jgit.revwalk.RevWalk) File(java.io.File) TreeWalk(org.eclipse.jgit.treewalk.TreeWalk) RevTree(org.eclipse.jgit.revwalk.RevTree) RevCommit(org.eclipse.jgit.revwalk.RevCommit)

Example 39 with RevTree

use of org.eclipse.jgit.revwalk.RevTree in project curiostack by curioswitch.

the class CurioGenericCiPlugin method parserForBranch.

private static CanonicalTreeParser parserForBranch(Git git, Ref branch) throws IOException {
    try (RevWalk walk = new RevWalk(git.getRepository())) {
        RevCommit commit = walk.parseCommit(branch.getObjectId());
        RevTree tree = walk.parseTree(commit.getTree().getId());
        final CanonicalTreeParser parser;
        try (ObjectReader reader = git.getRepository().newObjectReader()) {
            parser = parser(reader, tree.getId());
        }
        walk.dispose();
        return parser;
    }
}
Also used : ObjectReader(org.eclipse.jgit.lib.ObjectReader) RevWalk(org.eclipse.jgit.revwalk.RevWalk) RevTree(org.eclipse.jgit.revwalk.RevTree) CanonicalTreeParser(org.eclipse.jgit.treewalk.CanonicalTreeParser) RevCommit(org.eclipse.jgit.revwalk.RevCommit)

Example 40 with RevTree

use of org.eclipse.jgit.revwalk.RevTree in project omegat by omegat-org.

the class GITRemoteRepository2 method prepareTreeParser.

private static AbstractTreeIterator prepareTreeParser(Repository repository, ObjectId objId) throws Exception {
    // 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;
    }
}
Also used : ObjectReader(org.eclipse.jgit.lib.ObjectReader) RevWalk(org.eclipse.jgit.revwalk.RevWalk) RevTree(org.eclipse.jgit.revwalk.RevTree) CanonicalTreeParser(org.eclipse.jgit.treewalk.CanonicalTreeParser) RevCommit(org.eclipse.jgit.revwalk.RevCommit)

Aggregations

RevTree (org.eclipse.jgit.revwalk.RevTree)55 RevWalk (org.eclipse.jgit.revwalk.RevWalk)41 RevCommit (org.eclipse.jgit.revwalk.RevCommit)29 ObjectId (org.eclipse.jgit.lib.ObjectId)27 ObjectReader (org.eclipse.jgit.lib.ObjectReader)19 IOException (java.io.IOException)16 TreeWalk (org.eclipse.jgit.treewalk.TreeWalk)14 Repository (org.eclipse.jgit.lib.Repository)13 DiffEntry (org.eclipse.jgit.diff.DiffEntry)9 RevObject (org.eclipse.jgit.revwalk.RevObject)9 CanonicalTreeParser (org.eclipse.jgit.treewalk.CanonicalTreeParser)9 IncorrectObjectTypeException (org.eclipse.jgit.errors.IncorrectObjectTypeException)7 File (java.io.File)6 AnyObjectId (org.eclipse.jgit.lib.AnyObjectId)6 ObjectLoader (org.eclipse.jgit.lib.ObjectLoader)6 Ref (org.eclipse.jgit.lib.Ref)6 ArrayList (java.util.ArrayList)4 DiffFormatter (org.eclipse.jgit.diff.DiffFormatter)3 RawTextComparator (org.eclipse.jgit.diff.RawTextComparator)3 DirCache (org.eclipse.jgit.dircache.DirCache)3