Rsync parity: extended metadata preservation (hard links, ACLs, xattrs, devices, sparse files) #121
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
FastSync currently preserves basic POSIX metadata (mode, uid, gid, mtime) via
-M / --preserve. Rsync can preserve much more. FastSync should support:Missing preservation flags
-H, --hard-links— preserve hard links (detect and recreate same-inode files)-A, --acls— preserve POSIX ACLs-X, --xattrs— preserve extended attributes--devices— preserve device files (requires super-user)--specials— preserve special files (named sockets, fifos, etc.)-S, --sparse— handle sparse files efficiently (finding 19)--preallocate— pre-allocate destination files before writing-O, --omit-dir-times— omit directories from mtime preservation--super/--fake-super— receiver attempts super-user activitiesCurrent code
src/shared/metadata.c— only handles mode, uid, gid, mtime_sec, mtime_nsecsrc/shared/metadata.h— structFileMetadatahas no fields for ACLs, xattrs, hard links, or device infosrc/shared/file.c— no ACL/xattr restore logicImpact
Implementation notes