@Override protected Optional<RevCommit> _call() { Preconditions.checkState(date != null); long time = date.getTime(); Iterator<RevCommit> iter = command(LogOp.class).setFirstParentOnly(true).call(); while (iter.hasNext()) { RevCommit commit = iter.next(); if (commit.getCommitter().getTimestamp() < time) { return Optional.of(commit); } } return Optional.absent(); }
@Override protected Optional<RevCommit> _call() { Preconditions.checkState(date != null); long time = date.getTime(); Iterator<RevCommit> iter = command(LogOp.class).setFirstParentOnly(true).call(); while (iter.hasNext()) { RevCommit commit = iter.next(); if (commit.getCommitter().getTimestamp() < time) { return Optional.of(commit); } } return Optional.absent(); }
public static String toString(@NonNull RevCommit c) { return String.format("%s(%s)[tree:%s, parents:%s, msg:%s, author:%s, committer:%s]", c.getClass().getSimpleName(), // toShortString(c.getId()), // toShortString(c.getTreeId()), // c.getParentIds().stream().map(RevObjects::toShortString) .collect(Collectors.toList()), // c.getMessage(), // toShortString(c.getAuthor()), // toShortString(c.getCommitter())); }
/** * @param copy the commit to initialize this builder properties with */ public RevCommitBuilder init(@NonNull RevCommit copy) { author = copy.getAuthor().getName().orNull(); authorEmail = copy.getAuthor().getEmail().orNull(); committer = copy.getCommitter().getName().orNull(); committerEmail = copy.getCommitter().getEmail().orNull(); message = copy.getMessage(); parentIds = new ArrayList<>(copy.getParentIds()); treeId = copy.getTreeId(); authorTimestamp = copy.getAuthor().getTimestamp(); committerTimestamp = copy.getCommitter().getTimestamp(); authorTimeZoneOffset = copy.getAuthor().getTimeZoneOffset(); committerTimeZoneOffset = copy.getCommitter().getTimeZoneOffset(); return this; }
private int write(@NonNull RevCommit c, @NonNull FlatBufferBuilder builder) { return writeCommit(builder, c.getTreeId(), c.getParentIds(), c.getAuthor(), c.getCommitter(), c.getMessage()); }
public void writeCommit(RevCommit commit, DataOutput data) throws IOException { data.write(commit.getTreeId().getRawValue()); final int nParents = commit.getParentIds().size(); writeUnsignedVarInt(nParents, data); for (ObjectId pId : commit.getParentIds()) { data.write(pId.getRawValue()); } writePerson(commit.getAuthor(), data); writePerson(commit.getCommitter(), data); data.writeUTF(commit.getMessage()); }
/** * Equality is based on author, committer, message, parent ids, and tree id. * * @see AbstractRevObject#equals(java.lang.Object) */ @Override public boolean equals(Object o) { if (!(o instanceof RevCommit) && !super.equals(o)) { return false; } RevCommit c = (RevCommit) o; return equal(getAuthor(), c.getAuthor()) && equal(getCommitter(), c.getCommitter()) && equal(getMessage(), c.getMessage()) && equal(getParentIds(), c.getParentIds()) && equal(getTreeId(), c.getTreeId()); }
@Override protected void print(RevCommit commit, Writer w) throws IOException { println(w, "tree\t", commit.getTreeId().toString()); print(w, "parents\t"); for (Iterator<ObjectId> it = commit.getParentIds().iterator(); it.hasNext();) { print(w, it.next().toString()); if (it.hasNext()) { print(w, " "); } } println(w); printPerson(w, "author", commit.getAuthor()); printPerson(w, "committer", commit.getCommitter()); println(w, "message\t", Optional.fromNullable(commit.getMessage()).or("")); w.flush(); }
@Override public void funnel(RevCommit from, PrimitiveSink into) { funnel(into, from.getTreeId(), from.getParentIds(), from.getMessage(), from.getAuthor(), from.getCommitter()); }
@Override public void funnel(RevCommit from, PrimitiveSink into) { funnel(into, from.getTreeId(), from.getParentIds(), from.getMessage(), from.getAuthor(), from.getCommitter()); }
public void writeCommit(RevCommit commit, DataOutput data) throws IOException { commit.getTreeId().writeTo(data); final int nParents = commit.getParentIds().size(); writeUnsignedVarInt(nParents, data); for (ObjectId pId : commit.getParentIds()) { pId.writeTo(data); } writePerson(commit.getAuthor(), data); writePerson(commit.getCommitter(), data); data.writeUTF(commit.getMessage()); }
@Test public void testCommitWithExplicitNullAuthorEmail() throws Exception { CommitOp commitCommand = geogig.command(CommitOp.class); commitCommand.setAuthor("John Doe", null); commitCommand.setAllowEmpty(true); RevCommit commit = commitCommand.call(); assertFalse(commit.getAuthor().getEmail().isPresent()); assertEquals("groldan", commit.getCommitter().getName().get()); assertEquals("groldan@boundlessgeo.com", commit.getCommitter().getEmail().get()); assertEquals("John Doe", commit.getAuthor().getName().get()); }
@Test public void testCommitWithExplicitNullAuthorEmail() throws Exception { CommitOp commitCommand = geogig.command(CommitOp.class); commitCommand.setAuthor("John Doe", null); commitCommand.setAllowEmpty(true); RevCommit commit = commitCommand.call(); assertFalse(commit.getAuthor().getEmail().isPresent()); assertEquals("groldan", commit.getCommitter().getName().get()); assertEquals("groldan@boundlessgeo.com", commit.getCommitter().getEmail().get()); assertEquals("John Doe", commit.getAuthor().getName().get()); }
public static void deepEquals(@NonNull RevCommit expected, @NonNull RevCommit actual) { assertEquals(TYPE.COMMIT, actual.getType()); assertEquals(expected.getId(), actual.getId()); assertEquals(expected.getCommitter(), actual.getCommitter()); assertEquals(expected.getAuthor(), actual.getAuthor()); assertEquals(expected.getMessage(), actual.getMessage()); assertEquals(expected.getParentIds(), actual.getParentIds()); assertEquals(expected.getTreeId(), actual.getTreeId()); assertEquals(expected.getType(), actual.getType()); }
@Test public void testCommitUsingCommit() throws Exception { insertAndAdd(points1); final RevCommit commit = geogig.command(CommitOp.class) .setCommitter("anothercommitter", "anothercommitter@boundlessgeo.com").call(); insertAndAdd(points2); RevCommit commit2 = geogig.command(CommitOp.class).setCommit(commit).call(); assertEquals(commit.getMessage(), commit2.getMessage()); assertEquals(commit.getAuthor(), commit2.getAuthor()); assertNotSame(commit.getCommitter(), commit2.getCommitter()); }
@Test public void testCommitUsingCommit() throws Exception { insertAndAdd(points1); final RevCommit commit = geogig.command(CommitOp.class) .setCommitter("anothercommitter", "anothercommitter@boundlessgeo.com").call(); insertAndAdd(points2); RevCommit commit2 = geogig.command(CommitOp.class).setCommit(commit).call(); assertEquals(commit.getMessage(), commit2.getMessage()); assertEquals(commit.getAuthor(), commit2.getAuthor()); assertNotSame(commit.getCommitter(), commit2.getCommitter()); }
@Test public void testExplicitTimeStamp() throws Exception { CommitOp commitCommand = geogig.command(CommitOp.class); commitCommand.setAuthorTimestamp(1000L); commitCommand.setAuthorTimeZoneOffset(-3); commitCommand.setCommitterTimestamp(2000L); commitCommand.setCommitterTimeZoneOffset(+4); commitCommand.setAllowEmpty(true); RevCommit commit = commitCommand.call(); assertEquals(1000L, commit.getAuthor().getTimestamp()); assertEquals(-3, commit.getAuthor().getTimeZoneOffset()); assertEquals(2000L, commit.getCommitter().getTimestamp()); assertEquals(+4, commit.getCommitter().getTimeZoneOffset()); }
@Test public void testExplicitTimeStamp() throws Exception { CommitOp commitCommand = geogig.command(CommitOp.class); commitCommand.setAuthorTimestamp(1000L); commitCommand.setAuthorTimeZoneOffset(-3); commitCommand.setCommitterTimestamp(2000L); commitCommand.setCommitterTimeZoneOffset(+4); commitCommand.setAllowEmpty(true); RevCommit commit = commitCommand.call(); assertEquals(1000L, commit.getAuthor().getTimestamp()); assertEquals(-3, commit.getAuthor().getTimeZoneOffset()); assertEquals(2000L, commit.getCommitter().getTimestamp()); assertEquals(+4, commit.getCommitter().getTimeZoneOffset()); }
@Test public void testCommitUsingCommitAndMessage() throws Exception { String message = "A message"; insertAndAdd(points1); final RevCommit commit = geogig.command(CommitOp.class) .setCommitter("anothercommitter", "anothercommitter@boundlessgeo.com").call(); insertAndAdd(points2); RevCommit commit2 = geogig.command(CommitOp.class).setCommit(commit).setMessage(message) .call(); assertNotSame(commit.getMessage(), commit2.getMessage()); assertEquals(commit.getAuthor(), commit2.getAuthor()); assertNotSame(commit.getCommitter(), commit2.getCommitter()); assertEquals(message, commit2.getMessage()); }
@Test public void testCommitUsingCommitAndMessage() throws Exception { String message = "A message"; insertAndAdd(points1); final RevCommit commit = geogig.command(CommitOp.class) .setCommitter("anothercommitter", "anothercommitter@boundlessgeo.com").call(); insertAndAdd(points2); RevCommit commit2 = geogig.command(CommitOp.class).setCommit(commit).setMessage(message) .call(); assertNotSame(commit.getMessage(), commit2.getMessage()); assertEquals(commit.getAuthor(), commit2.getAuthor()); assertNotSame(commit.getCommitter(), commit2.getCommitter()); assertEquals(message, commit2.getMessage()); }