public static boolean equals(@NonNull RevPerson p1, @NonNull RevPerson person) { return equal(p1.getName(), person.getName()) && equal(p1.getEmail(), person.getEmail()) && p1.getTimestamp() == person.getTimestamp() && p1.getTimeZoneOffset() == person.getTimeZoneOffset(); }
private RevPerson parsePerson(String line) { String[] tokens = line.split("\t"); String header = "tagger"; Preconditions.checkArgument(header.equals(tokens[0]), "Expected field %s, got '%s'", header, tokens[0]); String name = tokens[1].trim().isEmpty() ? null : tokens[1]; String email = tokens[2].trim().isEmpty() ? null : tokens[2]; long timestamp = Long.parseLong(tokens[3]); int offset = Integer.parseInt(tokens[4]); return RevPerson.builder().build(name, email, timestamp, offset); }
/** * Converts a RevPerson for into a readable string. * * @param person the person to format. * @return the formatted string * @see RevPerson */ private String formatPerson(RevPerson person) { StringBuilder sb = new StringBuilder(); sb.append(person.getName().or("<name not set>")); sb.append(" <").append(person.getEmail().or("")).append('>'); return sb.toString(); }
RevCommit logCommit1 = log.next(); assertEquals(masterCommit.getAuthor(), logCommit1.getAuthor()); assertEquals(masterCommit.getCommitter().getName(), logCommit1.getCommitter().getName()); assertEquals(masterCommit.getMessage(), logCommit1.getMessage()); assertEquals(masterCommit.getAuthor().getTimeZoneOffset(), logCommit1.getAuthor().getTimeZoneOffset()); assertEquals(masterCommit.getAuthor().getTimestamp(), logCommit1.getAuthor().getTimestamp()); assertEquals(masterCommit.getCommitter().getTimeZoneOffset(), logCommit1.getCommitter().getTimeZoneOffset()); assertNotSame(masterCommit.getCommitter().getTimestamp(), logCommit1.getCommitter().getTimestamp()); assertNotSame(masterCommit.getTreeId(), logCommit1.getTreeId()); assertEquals(branchCommit.getCommitter().getName(), logCommit2.getCommitter().getName()); assertEquals(branchCommit.getMessage(), logCommit2.getMessage());
@Ignore // this test probably does not make sense with the current behaviour of cherry pick @Test public void testCherryPickRootCommit() throws Exception { insertAndAdd(points1); final RevCommit c1 = geogig.command(CommitOp.class).setMessage("commit for " + idP1).call(); CherryPickOp cherryPick = geogig.command(CherryPickOp.class); cherryPick.setCommit(Suppliers.ofInstance(c1.getId())); cherryPick.call(); Iterator<RevCommit> log = geogig.command(LogOp.class).call(); // Commit 2 RevCommit logC2 = log.next(); assertEquals(c1.getMessage(), logC2.getMessage()); assertEquals(c1.getAuthor(), logC2.getAuthor()); assertEquals(c1.getCommitter().getName(), logC2.getCommitter().getName()); assertEquals(c1.getCommitter().getEmail(), logC2.getCommitter().getEmail()); assertFalse(c1.getCommitter().getTimestamp() == logC2.getCommitter().getTimestamp()); assertEquals(c1.getTreeId(), logC2.getTreeId()); // Commit 1 RevCommit logC1 = log.next(); assertEquals(c1, logC1); assertFalse(log.hasNext()); }
assertEquals(initialCommit.getCommitter().getName(), initial.getCommitter().getName()); assertEquals(initialCommit.getCommitter().getEmail(), initial.getCommitter().getEmail()); assertEquals(initialCommit.getAuthor().getTimeZoneOffset(), initial.getAuthor().getTimeZoneOffset()); assertEquals(initialCommit.getCommitter().getTimeZoneOffset(), initial.getCommitter().getTimeZoneOffset()); assertEquals(initialCommit.getTreeId(), initial.getTreeId()); assertEquals(initialCommit.getId(), initial.getId());
@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()); }
@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(); }
assertEquals(c2.getAuthor().getName(), logCommit.getAuthor().getName()); assertEquals(c2.getCommitter().getName(), logCommit.getCommitter().getName()); assertEquals("Revert '" + c2.getMessage() + "'\nThis reverts " + c2.getId().toString(), logCommit.getMessage()); assertNotSame(c2.getCommitter().getTimestamp(), logCommit.getCommitter().getTimestamp()); assertNotSame(c2.getTreeId(), logCommit.getTreeId());
@Test public void testTransactionCommitMessage() throws Exception { FeatureCollection<SimpleFeatureType, SimpleFeature> collection; collection = DataUtilities.collection(Arrays.asList((SimpleFeature) points1, (SimpleFeature) points2, (SimpleFeature) points3)); DefaultTransaction tx = new DefaultTransaction(); points.setTransaction(tx); assertSame(tx, points.getTransaction()); try { points.addFeatures(collection); tx.putProperty(GeogigTransactionState.VERSIONING_COMMIT_AUTHOR, "John Doe"); tx.putProperty(GeogigTransactionState.VERSIONING_COMMIT_MESSAGE, "test message"); tx.commit(); assertEquals(3, dataStore.getFeatureSource(pointsName).getFeatures().size()); } catch (Exception e) { tx.rollback(); throw e; } finally { tx.close(); } List<RevCommit> commits = toList(geogig.command(LogOp.class).call()); assertFalse(commits.isEmpty()); assertTrue(commits.get(0).getAuthor().getName().isPresent()); assertEquals("John Doe", commits.get(0).getAuthor().getName().get()); assertEquals("test message", commits.get(0).getMessage()); }
/** * Converts a RevPerson for into a readable string. * * @param person the person to format. * @return the formatted string * @see RevPerson */ private String formatPerson(RevPerson person) { StringBuilder sb = new StringBuilder(); sb.append(person.getName().or("<name not set>")); sb.append(" <").append(person.getEmail().or("")).append('>'); return sb.toString(); }
RevCommit logCommit1 = log.next(); assertEquals(masterCommit.getAuthor(), logCommit1.getAuthor()); assertEquals(masterCommit.getCommitter().getName(), logCommit1.getCommitter().getName()); assertEquals(masterCommit.getMessage(), logCommit1.getMessage()); assertEquals(masterCommit.getAuthor().getTimeZoneOffset(), logCommit1.getAuthor().getTimeZoneOffset()); assertEquals(masterCommit.getAuthor().getTimestamp(), logCommit1.getAuthor().getTimestamp()); assertEquals(masterCommit.getCommitter().getTimeZoneOffset(), logCommit1.getCommitter().getTimeZoneOffset()); assertNotSame(masterCommit.getCommitter().getTimestamp(), logCommit1.getCommitter().getTimestamp()); assertNotSame(masterCommit.getTreeId(), logCommit1.getTreeId()); assertEquals(masterCommit2.getCommitter().getName(), logCommit2.getCommitter().getName()); assertEquals(masterCommit2.getMessage(), logCommit2.getMessage()); assertEquals(branchCommit.getCommitter().getName(), logCommit3.getCommitter().getName()); assertEquals(branchCommit.getMessage(), logCommit3.getMessage());
@Ignore // this test probably does not make sense with the current behaviour of cherry pick @Test public void testCherryPickRootCommit() throws Exception { insertAndAdd(points1); final RevCommit c1 = geogig.command(CommitOp.class).setMessage("commit for " + idP1).call(); CherryPickOp cherryPick = geogig.command(CherryPickOp.class); cherryPick.setCommit(Suppliers.ofInstance(c1.getId())); cherryPick.call(); Iterator<RevCommit> log = geogig.command(LogOp.class).call(); // Commit 2 RevCommit logC2 = log.next(); assertEquals(c1.getMessage(), logC2.getMessage()); assertEquals(c1.getAuthor(), logC2.getAuthor()); assertEquals(c1.getCommitter().getName(), logC2.getCommitter().getName()); assertEquals(c1.getCommitter().getEmail(), logC2.getCommitter().getEmail()); assertFalse(c1.getCommitter().getTimestamp() == logC2.getCommitter().getTimestamp()); assertEquals(c1.getTreeId(), logC2.getTreeId()); // Commit 1 RevCommit logC1 = log.next(); assertEquals(c1, logC1); assertFalse(log.hasNext()); }
assertEquals(initialCommit.getCommitter().getName(), initial.getCommitter().getName()); assertEquals(initialCommit.getCommitter().getEmail(), initial.getCommitter().getEmail()); assertEquals(initialCommit.getAuthor().getTimeZoneOffset(), initial.getAuthor().getTimeZoneOffset()); assertEquals(initialCommit.getCommitter().getTimeZoneOffset(), initial.getCommitter().getTimeZoneOffset()); assertEquals(initialCommit.getTreeId(), initial.getTreeId()); assertEquals(initialCommit.getId(), initial.getId());
@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()); }
@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(); }
private void assertCommit(RevCommit commit, @Nullable ObjectId parentId, String author, String message) { assertNotNull(commit); assertEquals(parentId == null ? 0 : 1, commit.getParentIds().size()); assertEquals(parentId, commit.parentN(0).orNull()); assertNotNull(commit.getTreeId()); assertNotNull(commit.getId()); if (author != null) { assertEquals(author, commit.getAuthor().getName().get()); } if (message != null) { assertEquals(message, commit.getMessage()); } assertNotNull(repo.getTree(commit.getTreeId())); assertEquals(commit.getId(), getRepository().getRef(Ref.HEAD).get().getObjectId()); }
public static int hashCode(@NonNull RevPerson p) { return Objects.hashCode(p.getName(), p.getEmail(), p.getTimestamp(), p.getTimeZoneOffset()); }
/** * Converts a RevPerson for into a readable string. * * @param person the person to format. * @return the formatted string * @see RevPerson */ private String formatPerson(RevPerson person) { StringBuilder sb = new StringBuilder(); sb.append(person.getName().or("<name not set>")); if (person.getEmail().isPresent()) { sb.append(" <").append(person.getEmail().get()).append('>'); } return sb.toString(); }
RevCommit logCommit1 = log.next(); assertEquals(masterCommit.getAuthor(), logCommit1.getAuthor()); assertEquals(masterCommit.getCommitter().getName(), logCommit1.getCommitter().getName()); assertEquals(masterCommit.getMessage(), logCommit1.getMessage()); assertEquals(masterCommit.getAuthor().getTimeZoneOffset(), logCommit1.getAuthor().getTimeZoneOffset()); assertEquals(masterCommit.getAuthor().getTimestamp(), logCommit1.getAuthor().getTimestamp()); assertEquals(masterCommit.getCommitter().getTimeZoneOffset(), logCommit1.getCommitter().getTimeZoneOffset()); assertNotSame(masterCommit.getCommitter().getTimestamp(), logCommit1.getCommitter().getTimestamp()); assertNotSame(masterCommit.getTreeId(), logCommit1.getTreeId()); assertEquals(masterCommit2.getCommitter().getName(), logCommit2.getCommitter().getName()); assertEquals(masterCommit2.getMessage(), logCommit2.getMessage()); assertEquals(branchCommit.getCommitter().getName(), logCommit3.getCommitter().getName()); assertEquals(branchCommit.getMessage(), logCommit3.getMessage());