HTTPsync: Obsolete File Removal
How Obsolete Files are Removed
The destination does not walk subdirectories to remove files which are not in the packing list.
Instead, only files which are specified in the packing list as "O" will be deleted. This behavior allows multiple packing lists to be "overlaid" into a common directory structure.
This does complicate the packing list, since an "O" line is required for all files which ever existed in a packing list including files which are obsolete. Unless some other method is in place to ensure that an "O" entry was seen by all possible destinations, "O" entries must remain in all future versions of the packing list (unless the file "reappears.")
"HTTPsync -m" has processing features which simplify the proper generation of "O" entries. Simply provide a list of all files and directories which ever existed, and for each name specified,
- If it does not currently exist, it will be marked as O. Directories should be listed last to properly remove empty subdirectories on the destination side.
- Otherwise if the name is a directory, nothing is written. This satisfies the requirement that directories are listed only if obsolete.
- Otherwise, it must be a file, and the name, size, GMT date, and mode are written.
Maintaining lists of all files which ever existed.
hs-pack.sh is a shell script for generating source-side packing lists, including obsolete files automatically. It uses a combination of "find" and "uniq" and locally persistent files to determine which files still exist and which have been made obsolete.
Up to HTTPsync home