* version 0.10: removed comments about rsync not considering some things
to be errors. This appears to be a bug in 2.3.2 on Linux. It has been
submitted to the rsync team. On Solaris rsync properly returns a non-zero
exit status if the source path does not exist. The bug was fixed in the
CVS tree, and in the release 2.4.1.
* added support for --backup-dir and --existing options (new in 2.4.1)
* Since I've not heard from anyone about keeping the command-line style
options, I've dropped them. The hash-style affords more flexibility
anyway. I also removed some duplicate code in parseopts since I can now
treat all args as a hash.
* After some discussion on the rsync mailing list I was told about a
method of passing multiple source arguments for a remote server. I've
added a new hash key 'srchost' to be used in combination with the 'source'
array to make it easier to use this capability. If the source host is
remote, and you have multiple source paths, you can put the source
hostname in 'srchost', and the paths in the 'source' array. The module
will assemble them as a single argument to rsync. If 'srchost' is null
then the 'source' array is passed to exec as seperate arguments.
Wed Dec 1 21:55:44 CST 1999 Lee Eakin <leakin@dfw.nostrum.com>
* version 0.09: removed bareword keys in hashes (5.00404 doesn't like
my use of 'scalar' as a key)
* version 0.08: changed test 5 in test.pl to account for different
return status between Solaris and Linux. I'll need to look into why
one detects the error and the other doesn't (rsync itself, not perl).
Tue Nov 30 20:46:00 CST 1999 Lee Eakin <leakin@dfw.nostrum.com>
* version 0.07:
* removed global $pkgname, now uses 'my $pkgname=ref $self' instead.
I also had to bless $self earlier in 'new' so defopts, and parseopts can
use 'ref $self' to determine the package name. It was not too bright
to hardcode the package name (vacations can have odd effects on the brain)
* changed saveopts and parseopts to begin with underscore since they
are for internal use only.
Sun Nov 28 19:41:31 CST 1999 Lee Eakin <leakin@dfw.nostrum.com>
* version 0.06:
* added $pkgname for 'carp' messages to make it clearer where they came
from.
* added missing check for 'include' in exec method
* other misc cleanup and clarification of code and documentation
Sun Nov 28 02:47:34 CST 1999 Lee Eakin <leakin@dfw.nostrum.com>
* version 0.05: major re-organization and re-writing of internal
functions to add the ability to pass a hash reference for perl-style
options handling. (Thanks to Greg Ward for the suggestion) This gives
increased flexibility including the ability to turn off boolean flags,
and to build your own include or exclude list as an array and pass a
reference to the array to the module. The same can be done for source
paths.
* removed leading double-dashes from the option keys. It is easier to
add them in the parser for command-line style than to remove them for
perl-style hashes.
* changed 'err' and 'out' methods to return an empty string or an empty
list if no output was generated. If there was output they return it as
an array or a reference to an array as before. This should make testing
for the existance of output more efficient. Before you had to call them
in a scalar context and dereference the return in order to check. Now
you can use a simple truth test. Also added a note about conditions
where rsync itself can return a true (0) exit but the programmer may
consider it an error. In these situations you need to check stderr for
error messages (such as 'no such file or directory'). See 'exec' method
in the manpage.
* removed newlines from carp messages so the 'at <prog> line ##' is on
the same line as the rest of the error message (bad habit from die).
* changed all return values except 'new' to zero instead of undef so
-w won't complain about use of un-initialized values. If anyone has
a good reason to put this back (like good/standard coding practices) let
me know.
* added test.pl script for 'make test'.
Sun Nov 21 02:18:56 CST 1999 Lee Eakin <leakin@dfw.nostrum.com>
* version 0.04: added missing 'next' that would cause a parsing
error if -P was used.
* Renamed module to File::Rsync (Thanks to Tim Bunce for the suggestion)
It really fits better here than in Net::, but once I thought of it
as a network-based program I had a mental block when considering other
groups.
Fri Nov 19 13:25:18 CST 1999 Lee Eakin <leakin@dfw.nostrum.com>
* version 0.03: --address should be a scalar, not a flag (the
rsync man page is unclear on this).
Wed Nov 17 21:20:16 CST 1999 Lee Eakin <leakin@dfw.nostrum.com>
* version 0.02:
* wrote first draft of Makefile.PL and makepm.PL to wrap it all up
as a real perl module.
* added new options for rsync 2.3.2 (-P, --delete-after, and
--address)
-P is short for --partial and --progress. --address is only
used in server mode. I don't know what good these are inside
this module, but you should still be able to pass them if you
want.
--delete-after allows the user to delay any --delete actions
until after all other files are synced. The default is to
perform any deletes before in order help insure sufficient disk
space is available. See the rsync (1) man page for more
details.
* remove any chance of clobbering $_ (mostly paranoia I hope)
Tue Jun 15 15:27:20 CDT 1999 Lee Eakin <leakin@dfw.nostrum.com>
* version 0.01: (initial) based on rsync 2.3.1