Age | Commit message (Collapse) | Author |
|
A notable problem (to me) with the former version was, that upon simple
movements in the source file tree, these would in general cause
duplicated data in the backup forest. This problem has been resolved
by essentially tracking file movements, using hard links.
Also, the code has been divided into several different files, extranous
code removed, the organization of remote code execution simplified.
In the process of simplification, all parts requiring direct interaction
of the user with the program have been replaced. In most cases, this
means that the program now just terminates with an error instead of
allowing the user to confirm deletion of an unexpected (remnant) file.
This may be considered a drawback, but actually these interactive
options were anyways suboptimal solutions in most cases - where they
occured, which was due to remnant files of aborted or failed former
backups.
In general, there have been a lot of changes. Which are not thoroughly
documented here. Since there is often no strong relation to the old
code, this is not deemed necessary, as the in-code documentation is
expected to be of sufficient help.
Also, there has been added a little general documentation in the README
and particularly the NOTES file.
It is to be noted that this new version is far from sophisticated. It
has been tested with and is in use for real data, however lacks a lot of
convenience. In particular, if a backup fails unexpectedly, the next
backup will in the very most cases loudly fail without manual
intervention. Also, the program is not able to continue the growth of a
backup tree built with former versions of this program, by itself. This
can however be arranged by hand.
|
|
Before, if the program was run with only a source argument, that has no
destination associated (e.g. in the configuration file), the destination
was accepted as the empty string, which translated to the local
directory (due to relative adressing).
This was due to the shell option nullglob, which now is unset in any
situations where `test -v' is used, which currently is only the case in
get_args. It is `test -v' that failed to recognize an undefined
variable.
|
|
Create wrapper functions that take a host and a function with named
arguments. The supplied function is the to be executed on the
specified host, which may be the empty string signifying local
execution.
These wrapper functions essentially export the to be run function and
any of its recursive dependencies, further the named arguments as
variables, to the remote host, and run the function remotely. That is,
if the host is non-local.
Also,
- use appropriate function names to differentiate between destination
and source host wherever applicable.
- add comments,
- enhance TODO and README,
- rename some variables in order to increase consistency,
- move some global declarations further upward,
- make variables readonly when reasonable,
- use named return and exit codes,
- add a general `ask'-function.
|
|
|
|
Before, it did not work correctly for >= 100 backups.
(There would only be prepended 0 or nothing to the unpadded number.)
|
|
Also:
- Remove `-vv'.
- Add progress bar.
|
|
|
|
|
|
|