-*- indented-text -*-
-URGENT ---------------------------------------------------------------
+BUGS ---------------------------------------------------------------
+
+There seems to be a bug with hardlinks
+
+ mbp/2 build$ ls -l /tmp/a /tmp/b -i
+ /tmp/a:
+ total 32
+ 2568307 -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a1
+ 2568307 -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a2
+ 2568307 -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a3
+ 2568310 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 a4
+ 2568310 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 a5
+ 2568310 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b1
+ 2568310 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b2
+ 2568310 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b3
+
+ /tmp/b:
+ total 32
+ 2568309 -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a1
+ 2568309 -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a2
+ 2568309 -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a3
+ 2568311 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 a4
+ 2568311 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 a5
+ 2568311 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b1
+ 2568311 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b2
+ 2568311 -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b3
+ mbp/2 build$ rm -r /tmp/b && ./rsync -avH /tmp/a/ /tmp/b
+ building file list ... done
+ created directory /tmp/b
+ ./
+ a1
+ a4
+ a2 => a1
+ a3 => a2
+ wrote 350 bytes read 52 bytes 804.00 bytes/sec
+ total size is 232 speedup is 0.58
+ mbp/2 build$ rm -r /tmp/b
+ mbp/2 build$ ls -l /tmp/b
+ ls: /tmp/b: No such file or directory
+ mbp/2 build$ rm -r /tmp/b && ./rsync -avH /tmp/a/ /tmp/b
+ rm: cannot remove `/tmp/b': No such file or directory
+ mbp/2 build$ rm -f -r /tmp/b && ./rsync -avH /tmp/a/ /tmp/b
+ building file list ... done
+ created directory /tmp/b
+ ./
+ a1
+ a4
+ a2 => a1
+ a3 => a2
+ wrote 350 bytes read 52 bytes 804.00 bytes/sec
+ total size is 232 speedup is 0.58
+ mbp/2 build$ ls -l /tmp/b
+ total 32
+ -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a1
+ -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a2
+ -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a3
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 a4
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 a5
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b1
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b2
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b3
+ mbp/2 build$ ls -l /tmp/a
+ total 32
+ -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a1
+ -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a2
+ -rw-rw-r-- 3 mbp mbp 29 Mar 25 17:30 a3
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 a4
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 a5
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b1
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b2
+ -rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b3
IMPORTANT ------------------------------------------------------------
+--dry-run is insufficiently dry
+
+ Mark Santcroos points out that -n fails to list files which have
+ only metadata changes, though it probably should.
+
+ There may be a Debian bug about this as well.
+
+
use chroot
If the platform doesn't support it, then don't even try.
http://lists.samba.org/pipermail/rsync/2001-August/thread.html
http://lists.samba.org/pipermail/rsync/2001-September/thread.html
+
--files-from
Avoids traversal. Better option than a pile of --include statements
for people who want to generate the file list using a find(1)
command or a script.
+
File list structure in memory
Rather than one big array, perhaps have a tree in memory mirroring
which should just take a small change to the parser code.
+
Errors
If we hang or get SIGINT, then explain where we were up to. Perhaps
explaining why the socket is closed. I'm not sure if this would
work, but it would certainly make our messages more helpful.
+ What happens if a directory is missing -x attributes. Do we lose
+ our load? (Debian #28416) Probably fixed now, but a test case
+ would be good.
+
+
File attributes
Device major/minor numbers should be at least 32 bits each. See
If a child of the rsync daemon dies with a signal, we should notice
that when we reap it and log a message.
+ Keep stderr and stdout properly separated (Debian #23626)
+
+ Use a separate function for reporting errors; prefix it with
+ "rsync:" or "rsync(remote)", or perhaps even "rsync(local
+ generator): ".
+
rsyncd over ssh
the program. For bonus points there would be a test case for the
parser.
+ (Debian #23628)
+
--diff
(Suggestion from david.e.sewell)
+Incorrect timestamps (Debian #100295)
+
+ A bit hard to believe, but apparently it happens.
+
+
+Check "refuse options works"
+
+ We need a test case for this...
+
+ Was this broken when we changed to popt?
+
+
+String area code
+
+ Test whether this is actually faster than just using malloc(). If
+ it's not (anymore), throw it out.
+
+
+
PLATFORMS ------------------------------------------------------------
Win32
Test daemon feature to disallow particular options.
+Pipe program that makes slow/jerky connections.
+
+Versions of read() and write() that corrupt the stream, or abruptly fail
+
+Separate makefile target to run rough tests -- or perhaps just run
+them every time?
+
DOCUMENTATION --------------------------------------------------------