Example usage for org.eclipse.jgit.patch FileHeader getPath

List of usage examples for org.eclipse.jgit.patch FileHeader getPath

Introduction

In this page you can find the example usage for org.eclipse.jgit.patch FileHeader getPath.

Prototype

public String getPath(Side side) 

Source Link

Document

Get the path associated with this file.

Usage

From source file:com.google.gitiles.DiffServletTest.java

License:Apache License

@Test
public void diffFileNoParentsText() throws Exception {
    String contents = "foo\ncontents\n";
    RevCommit c = repo.update("master", repo.commit().add("foo", contents));

    FakeHttpServletRequest req = FakeHttpServletRequest.newRequest();
    req.setPathInfo("/test/+diff/" + c.name() + "^!/foo");
    req.setQueryString("format=TEXT");
    FakeHttpServletResponse res = new FakeHttpServletResponse();
    servlet.service(req, res);//from  w  w  w .  j  a v  a  2  s .  co m

    Patch p = parsePatch(res.getActualBody());
    FileHeader f = getOnlyElement(p.getFiles());
    assertEquals(ChangeType.ADD, f.getChangeType());
    assertEquals(DiffEntry.DEV_NULL, f.getPath(Side.OLD));
    assertEquals("foo", f.getPath(Side.NEW));

    RawText rt = new RawText(contents.getBytes(UTF_8));
    Edit e = getOnlyElement(getOnlyElement(f.getHunks()).toEditList());
    assertEquals(Type.INSERT, e.getType());
    assertEquals(contents, rt.getString(e.getBeginB(), e.getEndB(), false));
}

From source file:com.google.gitiles.DiffServletTest.java

License:Apache License

@Test
public void diffFileOneParentText() throws Exception {
    String contents1 = "foo\n";
    String contents2 = "foo\ncontents\n";
    RevCommit c1 = repo.update("master", repo.commit().add("foo", contents1));
    RevCommit c2 = repo.update("master", repo.commit().parent(c1).add("foo", contents2));

    FakeHttpServletRequest req = FakeHttpServletRequest.newRequest();
    req.setPathInfo("/test/+diff/" + c2.name() + "^!/foo");
    req.setQueryString("format=TEXT");
    FakeHttpServletResponse res = new FakeHttpServletResponse();
    servlet.service(req, res);/*from   w w  w.ja va2 s  .c o  m*/

    Patch p = parsePatch(res.getActualBody());
    FileHeader f = getOnlyElement(p.getFiles());
    assertEquals(ChangeType.MODIFY, f.getChangeType());
    assertEquals("foo", f.getPath(Side.OLD));
    assertEquals("foo", f.getPath(Side.NEW));

    RawText rt2 = new RawText(contents2.getBytes(UTF_8));
    Edit e = getOnlyElement(getOnlyElement(f.getHunks()).toEditList());
    assertEquals(Type.INSERT, e.getType());
    assertEquals("contents\n", rt2.getString(e.getBeginB(), e.getEndB(), false));
}

From source file:org.oneandone.gitter.gitio.GitDirectory.java

License:Apache License

private int diffSize(String newCommit) throws IOException {
    int size = 0;
    try {/*  w  w w .jav  a2 s .c o m*/
        ObjectReader reader = repository.newObjectReader();
        CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
        ObjectId oldTree = repository.resolve(newCommit + "~1^{tree}"); // equals newCommit.getTree()
        // TODO the first commit has no precedessor .. we have no diff :-(
        if (oldTree == null) {
            log.error("No precedessor object for " + newCommit
                    + " returning default zero (which is not correct)");
            return 0;
        }
        Objects.requireNonNull(oldTree, "oldTree is null for " + newCommit);
        oldTreeIter.reset(reader, oldTree);
        CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
        ObjectId newTree = repository.resolve(newCommit + "^{tree}"); // equals oldCommit.getTree()
        Objects.requireNonNull(newTree, "newTree is null for " + newCommit);
        newTreeIter.reset(reader, newTree);

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DiffFormatter df = new DiffFormatter(baos);
        df.setRepository(repository);
        List<DiffEntry> entries = df.scan(oldTreeIter, newTreeIter);

        for (DiffEntry entry : entries) {
            FileHeader fileHeader = df.toFileHeader(entry);

            log.debug("Fileheader for {} -> {}", fileHeader.getPath(DiffEntry.Side.OLD),
                    fileHeader.getPath(DiffEntry.Side.NEW));

            log.debug(" length in bytes is {}", fileHeader.getBuffer().length);

            size += fileHeader.getBuffer().length;

            size += fileHeader.getBuffer().length;
            baos.reset();
        }
        //System.out.println("baos"+baos.toString());
    } catch (RevisionSyntaxException | IncorrectObjectTypeException ex) {
        throw new IOException(ex);
    }
    return size;
}

From source file:org.webcat.core.git.PrettyDiffFormatter.java

License:Open Source License

public void format(FileHeader head, RawText a, RawText b) throws IOException {
    currentDiff = new PrettyDiffResult();
    String path = head.getPath(Side.NEW);
    prettyDiffs.setObjectForKey(currentDiff, path);

    super.format(head, a, b);
}