-rw-rw-r-- 5 mbp mbp 29 Mar 25 17:30 b3
-IMPORTANT ------------------------------------------------------------
+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
command or a script.
+supplementary groups
+
+ Perhaps allow supplementary groups to be specified in rsyncd.conf;
+ then make the first one the primary gid and all the rest be
+ supplementary gids.
+
+
File list structure in memory
Rather than one big array, perhaps have a tree in memory mirroring
do this is to just disable gzip (with a warning) when talking to old
versions.
+ After we get the @RSYNCD greeting from the server, we know it's
+ version but we have not yet sent the command line, so we could just
+ remove the -z option if the server is too old.
-logging
+ For ssh invocation it's not so simple, because we actually use the
+ command line to start the remote process. However, we only actually
+ do compression in token.c, and we could therefore once we discover
+ the remote version emit an error if it's too old. I'm not sure if
+ that's a good tradeoff or not.
- 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)
-
- Use a separate function for reporting errors; prefix it with
- "rsync:" or "rsync(remote)", or perhaps even "rsync(local
- generator): ".
-
-
-rsyncd over ssh
-
- There are already some patches to do this.
proxy authentication
Was this broken when we changed to popt?
+PERFORMANCE ----------------------------------------------------------
+
+MD4 file_sum
+
+ If we're doing a local transfer, or using -W, then perhaps don't
+ send the file checksum. If we're doing a local transfer, then
+ calculating MD4 checksums uses 90% of CPU and is unlikely to be
+ useful.
+
+ Indeed for transfers over zlib or ssh we can also rely on the
+ transport to have quite strong protection against corruption.
+
+ Perhaps we should have an option to disable this, analogous to
+ --whole-file, although it would default to disabled. The file
+ checksum takes up a definite space in the protocol -- we can either
+ set it to 0, or perhaps just leave it out.
+
+MD4
+
+ Perhaps borrow an assembler MD4 from someone?
+
+ Make sure we call MD4 with properly-sized blocks whenever possible
+ to avoid copying into the residue region?
+
String area code
Test whether this is actually faster than just using malloc(). If
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