/** * Get all the next set of nodes from the iterator with the same path. * * @param iterator * @return */ private List<DiffEntry> nextPath(PeekingIterator<DiffEntry> iterator) { List<DiffEntry> entries = new ArrayList<DiffEntry>(); DiffEntry next = iterator.next(); entries.add(next); String name = next.oldName() != null ? next.oldName() : next.newName(); while (iterator.hasNext()) { DiffEntry peeked = iterator.peek(); String peekedName = peeked.oldName() != null ? peeked.oldName() : peeked.newName(); if (name.equals(peekedName)) { entries.add(iterator.next()); } else { break; } } return entries; }
msg.append("\n ").append(entry.changeType().toString().toLowerCase()) .append(' ') .append(entry.newPath() == null ? entry.oldName() : entry.newPath());
@Override protected void export(final String refSpec, final DataStore targetStore, final String targetTableName, final ProgressListener progress) { Preconditions.checkArgument(oldRef != null, "Old ref not specified."); Preconditions.checkArgument(getSourceCommitish() != null, "New ref not specified."); changedNodes.clear(); InterchangeFormat format = new InterchangeFormat(geopackage, context()); try (final AutoCloseableIterator<DiffEntry> diff = context.command(DiffOp.class) .setOldVersion(oldRef).setNewVersion(getSourceCommitish()) .setFilter(targetTableName).call()) { while (diff.hasNext()) { DiffEntry entry = diff.next(); changedNodes.put(entry.newName() != null ? entry.newName() : entry.oldName(), entry.changeType()); } } super.export(refSpec, targetStore, targetTableName, progress); try { format.createFIDMappingTable(fidMappings, targetTableName); // create change log format.createChangeLog(targetTableName, changedNodes); } catch (SQLException | IOException e) { throw new RuntimeException(e); } }
if (NodeRef.ROOT.equals(diff.newName()) || NodeRef.ROOT.equals(diff.oldName())) { continue;
assertEquals(node.getObjectId(), entry.oldObjectId()); assertEquals(node.getMetadataId().get(), entry.oldMetadataId()); assertEquals(node.getName(), entry.oldName()); assertEquals(node.getType(), entry.oldObjectType()); assertEquals(nodeRef.path(), entry.oldPath()); assertEquals(ObjectId.NULL, entry.oldObjectId()); assertEquals(ObjectId.NULL, entry.oldMetadataId()); assertEquals(null, entry.oldName()); assertEquals(null, entry.oldObjectType()); assertEquals(null, entry.oldPath()); assertEquals(node.getObjectId(), entry.oldObjectId()); assertEquals(node.getMetadataId().get(), entry.oldMetadataId()); assertEquals(node.getName(), entry.oldName()); assertEquals(node.getType(), entry.oldObjectType()); assertEquals(nodeRef.path(), entry.oldPath());