Wayne Davison [Sat, 3 Jan 2009 20:00:02 +0000 (12:00 -0800)]
Improved the backup code:
- Backups do not interfere with an atomic update (when possible).
- Backing up a file will remove a directory that is in the way
and visa versa.
- Unify the backup-dir and non-backup-dir code in backup.c.
- Improved the backup tests a little bit.
Matt McCutchen [Mon, 10 Nov 2008 14:44:01 +0000 (06:44 -0800)]
Add flist_find_ignore_dirness() and change delete_in_dir() to use it.
This fixes an issue with -K noticed by eric casteleijn, avoids some
inconsistent itemizing when a file/dir is replaced by a dir/file,
and removes a now-obsolete chunk of code from make_file().
Matt McCutchen [Mon, 3 Nov 2008 01:46:08 +0000 (20:46 -0500)]
The protect filter automatically added with --backup is not perishable
(see f41152d39396f0672a97268739c333537579404a), so remove the inaccurate
"p" from the man page. Noticed by Jacob Balazer:
Wayne Davison [Sat, 27 Sep 2008 04:55:44 +0000 (21:55 -0700)]
Enhanced the --stats output:
- Mention how many files were created (protocol >= 29).
- Mention how many files were deleted (new in protocol 31).
- Follow the file-count, created-count, and deleted-count
with a break-out list of each count by type.
Wayne Davison [Wed, 24 Sep 2008 03:15:19 +0000 (20:15 -0700)]
Initialize xattr data in a couple spots in the hlink code, which avoids
a crash when the xattr pointer's memory happens to start out non-zero.
Also fixed the itemizing of an alt-dest file's xattrs when hard-linking.
Matt McCutchen [Tue, 2 Sep 2008 00:01:19 +0000 (17:01 -0700)]
Several fixes for merge file handling:
- Free a mergelist's parent_dirscanned filters the last time it is
popped or as soon as the filters are discarded due to the "n"
modifier. Aside from not leaking memory, this is needed to clean up
any mergelists defined during the parent_dirscan to avoid crashing by
trying to restore nonexistent state for them in pop_local_filters.
- Make push_local_filters save the current mergelist_cnt, and make
pop_local_filters assert that it has the correct number of mergelists
before restoring their state.
- Assert that mergelists get deactivated in strict LIFO order to catch
any glitches as soon as they happen. Free linked lists of filters in
reverse order to make that the case.
- Add a bunch of mergelist-related debug output (--debug=filter2).
Wayne Davison [Mon, 1 Sep 2008 19:53:43 +0000 (12:53 -0700)]
Output numbers in 3-digit groups by default (e.g. 1,234,567).
Also improved the human-readable output functions, including
adding the ability to output negative numbers.
Wayne Davison [Sun, 31 Aug 2008 17:01:44 +0000 (10:01 -0700)]
Added extra file-changing logic to ensure that the various files that
mention the protocol number have the right value, that the check-in date
for a protocol-change release is specified, and that a pre-release with
a protocol change doesn't have SUBPROTOCOL_VERSION set to 0. Prompt for
releasing a branch if -b option was not used and we're on a branch.
Wayne Davison [Sun, 31 Aug 2008 16:03:50 +0000 (09:03 -0700)]
Improved the fix that ensures that the generator gets notified about an
I/O error for the incremental directory that generated the error. The
PROTOCOL_VERSION was bumped to 31 to implement this.
Wayne Davison [Sat, 2 Aug 2008 16:14:36 +0000 (09:14 -0700)]
Added logic to the receiving side to ensure that the --delete-during
code will not delete in a directory prior to receiving an I/O error
for that directory (or not receiving it, as the case may be).
Wayne Davison [Sat, 2 Aug 2008 02:03:59 +0000 (19:03 -0700)]
Fixed a problem with checking for the '.' dir in the first file
list that is transferred. This fixes a glitch where a failed
--iconv conversion on the receiving side could prevent deletions
from happening in the root-dir of the transfer.
Wayne Davison [Sat, 2 Aug 2008 01:15:28 +0000 (18:15 -0700)]
Changed the iconv-related message that was being output as the
lone --info=misc2 message into a --debug=iconv message so that
all iconv info will be output when requesting iconv debugging.
Wayne Davison [Sat, 2 Aug 2008 01:04:24 +0000 (18:04 -0700)]
Fixed a couple minor problems in util.c:
- Make sure that handle_partial_dir() never returns a truncated fname.
- Make robust_rename() return that it failed to do a cross-device
copy if the partial-dir could not be created.
Wayne Davison [Sat, 2 Aug 2008 01:03:57 +0000 (18:03 -0700)]
Properly handle a failure to create a partial directory, which is
especially important for --delay-updates, particularly when
--remove-source-files was also specified.