private void readPartial(IncomingChangeListData data) {
    HashSet<Change> result = new HashSet<>();
    try {
      File partialFile = getPartialPath(data.indexEntry.offset);
      if (partialFile.exists()) {
        try (RandomAccessFile file = new RandomAccessFile(partialFile, "r")) {
          int count = file.readInt();
          if (count > 0) {
            final Collection<Change> changes = data.changeList.getChanges();
            final Map<String, Change> beforePaths = new HashMap<>();
            final Map<String, Change> afterPaths = new HashMap<>();
            for (Change change : changes) {
              if (change.getBeforeRevision() != null) {
                beforePaths.put(FilePathsHelper.convertPath(change.getBeforeRevision().getFile()), change);
              }
              if (change.getAfterRevision() != null) {
                afterPaths.put(FilePathsHelper.convertPath(change.getAfterRevision().getFile()), change);
              }
            }
            for (int i = 0; i < count; i++) {
              boolean isAfterRevision = (file.readByte() != 0);
              String path = file.readUTF();
              final String converted = FilePathsHelper.convertPath(path);
              final Change change;
              if (isAfterRevision) {
                change = afterPaths.get(converted);
              }
              else {
                change = beforePaths.get(converted);
              }
              if (change != null) {
                result.add(change);
              }
            }
          }
        }
      }
    }
    catch(IOException ex) {
      LOG.error(ex);
    }
    data.accountedChanges = result;
  }
private void readPartial(IncomingChangeListData data)