itemize() needs to use CHMOD_BITS (patch)
Roderick Schertler
roderick at argon.org
Tue Jul 26 16:55:36 GMT 2005
When syncing from Linux to Aix --itemize-changes with --perms lists
directories every time because the high-order st_mode bits for
directories differ between the two systems, and itemize() isn't masking
them with CHMOD_BITS. Here is a fix, tested with 2.6.6pre1.
PS: I'm not subscribed to this mailing list, please Cc: if you need
more info from me. Thanks.
--- generator.c.~1~ Thu Jun 30 13:03:14 2005
+++ generator.c Tue Jul 26 12:51:11 2005
@@ -327,7 +327,8 @@
&& (!(iflags & ITEM_XNAME_FOLLOWS) || *xname))
|| (keep_time && cmp_modtime(file->modtime, st->st_mtime) != 0))
iflags |= ITEM_REPORT_TIME;
- if (preserve_perms && file->mode != st->st_mode)
+ if (preserve_perms && (st->st_mode & CHMOD_BITS)
+ != (file->mode & CHMOD_BITS))
iflags |= ITEM_REPORT_PERMS;
if (preserve_uid && am_root && file->uid != st->st_uid)
iflags |= ITEM_REPORT_OWNER;
--
Roderick Schertler
roderick at argon.org
More information about the rsync
mailing list