mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-02-01 02:32:04 -05:00
161 lines
4.9 KiB
Plaintext
161 lines
4.9 KiB
Plaintext
-*- indented-text -*-
|
|
|
|
URGENT ---------------------------------------------------------------
|
|
|
|
|
|
IMPORTANT ------------------------------------------------------------
|
|
|
|
Cross-test versions
|
|
|
|
Part of the regression suite should be making sure that we don't
|
|
break backwards compatibility: old clients vs new servers and so
|
|
on. Ideally we would test the cross product of versions.
|
|
|
|
It might be sufficient to test downloads from well-known public
|
|
rsync servers running different versions of rsync. This will give
|
|
some testing and also be the most common case for having different
|
|
versions and not being able to upgrade.
|
|
|
|
use chroot
|
|
|
|
If the platform doesn't support it, then don't even try.
|
|
|
|
If running as non-root, then don't fail, just give a warning.
|
|
(There was a thread about this a while ago?)
|
|
|
|
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.
|
|
|
|
Performance
|
|
|
|
Traverse just one directory at a time. Tridge says it's possible.
|
|
|
|
Can possibly also be smarter about memory use while looking for hard
|
|
links by reducing the refcount as we find alternative names.
|
|
|
|
IPv6
|
|
|
|
Implement suggestions from http://www.kame.net/newsletter/19980604/
|
|
and ftp://ftp.iij.ad.jp/pub/RFC/rfc2553.txt
|
|
|
|
If a host has multiple addresses, then listen try to connect to all
|
|
in order until we get through. (getaddrinfo may return multiple
|
|
addresses.) This is kind of implemented already.
|
|
|
|
Possibly also when starting as a server we may need to listen on
|
|
multiple passive addresses. This might be a bit harder, because we
|
|
may need to select on all of them. Hm.
|
|
|
|
Define a syntax for IPv6 literal addresses. Since they include
|
|
colons, they tend to break most naming systems, including ours.
|
|
Based on the HTTP IPv6 syntax, I think we should use
|
|
|
|
rsync://[::1]/foo/bar
|
|
[::1]::bar
|
|
|
|
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
|
|
have a static buffer that contains the current function name, or
|
|
some kind of description of what we were trying to do. This is a
|
|
little easier on people than needing to run strace/truss.
|
|
|
|
"The dungeon collapses! You are killed." Rather than "unexpected
|
|
eof" give a message that is more detailed if possible and also more
|
|
helpful.
|
|
|
|
File attributes
|
|
|
|
Device major/minor numbers should be at least 32 bits each. See
|
|
http://lists.samba.org/pipermail/rsync/2001-November/005357.html
|
|
|
|
Transfer ACLs. Need to think of a standard representation.
|
|
Probably better not to even try to convert between NT and POSIX.
|
|
Possibly can share some code with Samba.
|
|
|
|
Empty directories
|
|
|
|
With the current common --include '*/' --exclude '*' pattern, people
|
|
can end up with many empty directories. We might avoid this by
|
|
lazily creating such directories.
|
|
|
|
zlib
|
|
|
|
Perhaps don't use our own zlib. Will we actually be incompatible,
|
|
or just be slightly less efficient?
|
|
|
|
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
|
|
|
|
PLATFORMS ------------------------------------------------------------
|
|
|
|
Win32
|
|
|
|
Don't detach, because this messes up --srvany.
|
|
|
|
http://sources.redhat.com/ml/cygwin/2001-08/msg00234.html
|
|
|
|
According to "Effective TCP/IP Programming" (??) close() on a socket
|
|
has incorrect behaviour on Windows -- it sends a RST packet to the
|
|
other side, which gives a "connection reset by peer" error. On that
|
|
platform we should probably do shutdown() instead. However, on Unix
|
|
we are correct to call close(), because shutdown() discards
|
|
untransmitted data.
|
|
|
|
BUILD FARM -----------------------------------------------------------
|
|
|
|
Add machines
|
|
|
|
AMDAHL UTS (Dave Dykstra)
|
|
|
|
Cygwin (on different versions of Win32?)
|
|
|
|
HP-UX variants (via HP?)
|
|
|
|
SCO
|
|
|
|
NICE -----------------------------------------------------------------
|
|
|
|
SIGHUP
|
|
|
|
Re-read config file (just exec() ourselves) rather than exiting.
|
|
|
|
--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
|
|
|
|
On
|
|
|
|
internationalization
|
|
|
|
Change to using gettext(). Probably need to ship this for platforms
|
|
that don't have it.
|
|
|
|
Solicit translations.
|
|
|
|
Does anyone care?
|
|
|
|
rsyncsh
|
|
|
|
Write a small emulation of interactive ftp as a Pythonn program
|
|
that calls rsync. Commands such as "cd", "ls", "ls *.c" etc map
|
|
fairly directly into rsync commands: it just needs to remember the
|
|
current host, directory and so on. We can probably even do
|
|
completion of remote filenames.
|
|
|