public static DirDiff getDirDiff(File localSnapshotDir, DirIndex remoteSnapshotDir,
      BiPredicate<File, FileIndex> areSameFile) {
    return getDirDiff(localSnapshotDir, remoteSnapshotDir, areSameFile, true);
  }
Compare the local snapshot directory and the remote snapshot directory and return the recursive diff of the two as
a {@link DirDiff}.
@param localSnapshotDir File representing local snapshot root directory
@param remoteSnapshotDir {@link DirIndex} representing the remote snapshot directory
@param areSameFile A BiPredicate to test if a local and remote file are the same file
@return {@link DirDiff} representing the recursive diff of local and remote snapshots directories
samza-core/src/main/java/org/apache/samza/storage/blobstore/util/DirDiffUtil.java