-*- 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
+
+
+Progress indicator can produce corrupt output when transferring directories:
+
+ main/binary-arm/
+ main/binary-arm/admin/
+ main/binary-arm/base/
+ main/binary-arm/comm/8.56kB/s 0:00:52
+ main/binary-arm/devel/
+ main/binary-arm/doc/
+ main/binary-arm/editors/
+ main/binary-arm/electronics/s 0:00:53
+ main/binary-arm/games/
+ main/binary-arm/graphics/
+ main/binary-arm/hamradio/
+ main/binary-arm/interpreters/
+ main/binary-arm/libs/6.61kB/s 0:00:54
+ main/binary-arm/mail/
+ main/binary-arm/math/
+ main/binary-arm/misc/
+
+lchmod
+
+ I don't think we handle this properly on systems that don't have the
+ call.
+
+
+DAEMON --------------------------------------------------------------
+
+server-imposed bandwidth limits
+rsyncd over ssh
+
+ There are already some patches to do this.
+
+ BitKeeper uses a server whose login shell is set to bkd. That's
+ probably a reasonable approach.
+
+
+FEATURES ------------------------------------------------------------
+
+
+--dry-run is insufficiently dry
+
+ Mark Santcroos points out that -n fails to list files which have
+ only metadata changes, though it probably should.
-IMPORTANT ------------------------------------------------------------
+ There may be a Debian bug about this as well.
use chroot
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
versions.
-logging
-
- Perhaps flush stdout after each filename, so that people trying to
- monitor progress in a log file can do so more easily. See
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=48108
-
- At the connections that just get a list of modules are not logged,
- but they should be.
-
- 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)
-
-
-rsyncd over ssh
-
- There are already some patches to do this.
-
proxy authentication
Allow RSYNC_PROXY to be http://user:pass@proxy.foo:3128/, and do
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.
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 --------------------------------------------------------
SCO
-NICE -----------------------------------------------------------------
---no-detach and --no-fork options
+LOGGING --------------------------------------------------------------
- Very useful for debugging. Also good when running under a
- daemon-monitoring process that tries to restart the service when the
- parent exits.
+ Perhaps flush stdout after each filename, so that people trying to
+ monitor progress in a log file can do so more easily. See
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=48108
-hang/timeout friendliness
+ At the connections that just get a list of modules are not logged,
+ but they should be.
+
+ 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): ".
verbose output
At end of transfer, show how many files were or were not transferred
correctly.
+-vv
+
+ Explain *why* every file is transferred or not (e.g. "local mtime
+ 123123 newer than 1283198")
+
+
+debugging of daemon
+
+ Add an rsyncd.conf parameter to turn on debugging on the server.
+
+
+
+NICE -----------------------------------------------------------------
+
+--no-detach and --no-fork options
+
+ Very useful for debugging. Also good when running under a
+ daemon-monitoring process that tries to restart the service when the
+ parent exits.
+
+hang/timeout friendliness
+
internationalization
Change to using gettext(). Probably need to ship this for platforms
Solicit translations.
- Does anyone care?
+ Does anyone care? Before we bother modifying the code, we ought to
+ get the manual translated first, because that's possibly more useful
+ and at any rate demonstrates desire.
+
rsyncsh