public void resetTo(ProcedureStoreTracker tracker, boolean resetDelete) {
    reset();
    // resetDelete will true if we are building the cleanup tracker, as we will reset deleted flags
    // for all the unmodified bits to 1, the partial flag is useless so set it to false for not
    // confusing the developers when debugging.
    this.partial = resetDelete ? false : tracker.partial;
    this.minModifiedProcId = tracker.minModifiedProcId;
    this.maxModifiedProcId = tracker.maxModifiedProcId;
    this.keepDeletes = tracker.keepDeletes;
    for (Map.Entry<Long, BitSetNode> entry : tracker.map.entrySet()) {
      map.put(entry.getKey(), new BitSetNode(entry.getValue(), resetDelete));
    }
  }
Resets internal state to same as given {@code tracker}, and change the deleted flag according
to the modified flag if {@code resetDelete} is true. Does deep copy of the bitmap.
<p/>
The {@code resetDelete} will be set to true when building cleanup tracker, please see the
comments in {@link BitSetNode#BitSetNode(BitSetNode, boolean)} to learn how we change the
deleted flag if {@code resetDelete} is true.
hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureStoreTracker.java