List of usage examples for org.eclipse.jgit.patch FileHeader getPath
public String getPath(Side side)
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); }