def find_snapshots_to_delete(from_front, to_front):
    """ Find all snapshots in from_front that has been deleted, but
    has not yet been deleted in the clone to_front. """
    snapshots_to_delete = []
    self_max_rev = to_front.get_highest_used_revision()
    already_deleted_snapshots = set(to_front.get_deleted_snapshots())
    for rev in from_front.get_deleted_snapshots():
        if rev > self_max_rev:
            continue
        if rev in already_deleted_snapshots:
            continue
        deleted_name, deleted_fingerprint = from_front.get_deleted_snapshot_info(rev)
        session_info = to_front.get_session_info(rev)
        assert session_info['name'] == deleted_name
        assert to_front.get_session_fingerprint(rev) == deleted_fingerprint
        snapshots_to_delete.append(rev)
    return snapshots_to_delete