| 1 | NEWS for rsync 2.6.7 (UNRELEASED) |
| 2 | Protocol: 29 (unchanged) |
| 3 | Changes since 2.6.6: |
| 4 | |
| 5 | BUG FIXES: |
| 6 | |
| 7 | - Made hard-links work with symlinks and devices again. |
| 8 | |
| 9 | - If a device changed permissions, rsync no longer recreates the device |
| 10 | instead of just updating the permissions. |
| 11 | |
| 12 | - If the user specifies a remote-host for both the source and destination, |
| 13 | we now output a syntax error rather than trying to open the destination |
| 14 | hostspec as a filename. |
| 15 | |
| 16 | - When --inplace creates a new destination file, rsync now creates it with |
| 17 | permissions 0600 instead of 0000 -- this makes restarting possible when |
| 18 | the transfer gets interrupted in the middle of sending a new file. |
| 19 | |
| 20 | ENHANCEMENTS: |
| 21 | |
| 22 | - Added the --append option that makes rsync append data onto files |
| 23 | that are longer on the source than the destination (this includes new |
| 24 | files). |
| 25 | |
| 26 | - If lutimes() and/or lchmod() are around, use them to allow the |
| 27 | preservation of attributes on symlinks. |
| 28 | |
| 29 | - Added two config items to the rsyncd.conf parsing: "pre-xfer exec" |
| 30 | and "post-xfer exec". These allow a command to be specified on a |
| 31 | per-module basis that will be run before and/or after a daemon-mode |
| 32 | transfer. |
| 33 | |
| 34 | - When using the --relative option, you can now insert a dot dir in |
| 35 | the source path to indicate where the replication of the source dirs |
| 36 | should start. For example, if you specify a source path of |
| 37 | rsync://host/module/foo/bar/./baz/dir with -R, rsync would only |
| 38 | replicate the "baz/dir" part of the source path (note: a trailing |
| 39 | dot dir is unaffected unless it also has a trailing slash). |
| 40 | |
| 41 | INTERNAL: |
| 42 | |
| 43 | - Some buffer sizes were expanded a bit, particularly on systems where |
| 44 | MAXPATHLEN is overly small (e.g. cygwin). |
| 45 | |
| 46 | - If io_printf() tries to format more data than fits in the buffer, exit |
| 47 | with an error instead of transmitting a truncated buffer. |