private void registerChangedResourceParent(IResource changedResource) throws TeamException {
  IContainer parent=changedResource.getParent();
  if (parent == null)   return;
  if (remoteSyncStateStore.getBytes(parent) == null) {
    remoteSyncStateStore.setBytes(parent,DUMMY_SYNC_BYTES);
    registerChangedResourceParent(parent);
  }
}

private void registerChangedResourceParent ( IResource changedResource ) throws TeamException { IContainer parent = changedResource . getParent ( ) ; if ( parent == null ) return ; if ( remoteSyncStateStore . getBytes ( parent ) == null ) { remoteSyncStateStore . setBytes ( parent , DUMMY_SYNC_BYTES ) ; registerChangedResourceParent ( parent ) ; } }
sessionresourcevariantbytestore of remotesyncstatestore used to store ( and flush ) sync changes register only direct parents of the changed resources . if we want to be able to flush arbitrary subtree from the remotesyncstatestore ( event subtree which root is unchanged resource ) , we have to cache all parent of the changed resources up to the top . these sync dummy_sync_bytes are stored as synch info , so upon this dummy bytes we then filter out the actually unchanged sync data from the cache
