2016-03-17 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.21 released.
* mapbook.cc (Mapbook): Fix iobuf alignment.
(Reported by Heikki Tauriainen).
* Removed short option names '-1' and '-2'.
* Allow only regular files for '--log-rates' and '--log-reads'.
* Option '-D, --odirect' now works also in fill mode.
* rescuebook.cc (copy_block): Return 1 on unaligned read error.
Set e_code on any error if verify_on_error.
* Option '-X, --exit-on-error' has been extended to all phases.
* Assigned short name '-Z' to option '--max-read-rate'.
* mapbook.cc (update_mapfile): 'fsync' the mapfile every 5 minutes.
* Rescuebook: Show full range of sizes from non-tried to finished.
* rescuebook.cc (show_status): Show percent rescued.
* configure: Avoid warning on some shells when testing for g++.
* Makefile.in: Detect the existence of install-info.
2015-09-10 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.20 released.
* 'logfile' has been renamed to 'mapfile' everywhere.
* Changed short name of option '--synchronous' to '-y'.
* Changed long name of option '-d' to '--idirect'.
* Added new option '-D, --odirect'.
* Added new option '-J, --verify-on-error'.
* Added new option '--max-read-rate'.
* rescuebook.cc (copy_block): Copy arbitrary blocks with '--idirect'.
* Include only bad-sector blocks in 'errsize'.
* rescuebook.cc (show_status): Show the estimated remaining time.
* io.cc (format_time): Show time in days, hours, minutes and seconds.
* Added per sector location data to fill mode.
* mapbook.cc: Added emergency save of the mapfile.
* Show device name with '--ask' or '-vv' on Haiku.
* mapfile.cc (read_mapfile): Read read-only mapfiles from stdin.
* ddrescuelog.cc: Allow multiple mapfiles for '-t, --show-status'.
* ddrescuelog.cc (create_mapfile): '-' writes mapfile to stdout.
* ddrescue.texi: Added new chapter 'Optical media'.
* ddrescue.texi: Documented maximum size of the rescue domain.
* configure: Option '--enable-linux' renamed to '--enable-non-posix'.
* Makefile.in: Added new targets 'install*-compress'.
* File 'ddrescue.h' renamed to 'mapbook.h'.
* File 'logbook.cc' renamed to 'mapbook.cc'.
* File 'logfile.cc' renamed to 'mapfile.cc'.
* Files linux.{h,cc} renamed to non_posix.{h,cc}.
2014-10-03 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.19 released.
* Fixed a race condition at start of run with '--timeout=0'.
* Added new option '-P, --data-preview'.
* Added new option '-u, --unidirectional'.
* Added new option '-X, --exit-on-error'.
* Added new option '--ask' to ask for user confirmation.
* Added new option '--cpass' to select passes during copying phase.
* Added new option '--pause' to insert a pause between passes.
* Removed option '-l, --logfile-size'.
* Skip on the first error during the copying phase.
* rescuebook.cc: Trimming done in one pass, may be run in reverse.
* The splitting phase has been replaced by a scraping phase.
* Changed long name of option '-n' to '--no-scrape'.
* rescuebook.cc: Alternate direction of passes during retrying phase.
* Show ATA model and serial number with '--ask' or '-vv' on Linux.
* configure: Added new option '--enable-linux'.
* New files linux.h linux.cc.
* License changed to GPL version 2 or later.
2014-06-10 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.18.1 released.
* ddrescuelog.cc (do_logic_ops): Fixed 'or' and 'xor'.
* Added new option '-H, --test-mode' to simulate read errors.
* Added new option '-L, --loose-domain' to ddrescue and ddrescuelog.
* Added new option '-N, --no-trim' to disable trimming of
damaged areas.
* Added new option '-O, --reopen-on-error'.
* Added new options '-1, --log-rates', and '-2, --log-reads'.
* Extended '-K, --skip-size' with maximum and disable values.
* Changed long name of option '-r' to '--retry-passes'.
* Changed short name of option '--generate-mode' to '-G'.
* Default value of option '-l, --logfile-size' increased to 10000.
* If interrupted, ddrescue terminates by raising the signal received.
* rescuebook.cc (copy_non_tried): Don't mark skipped blocks as
non-trimmed. Try them in additional passes (before trimming).
* rescuebook.cc: Limit the copying phase to 3 passes.
* rescuebook.cc: Alternate direction of passes during copying phase.
* rescuebook.cc: Smallest blocks are trimmed first.
* rescuebook.cc (split_errors): Read largest first if logfile full.
* Improved speed when using option '-m, --domain-logfile'.
* io.cc (show_status): Show the current total run time.
* rescuebook.cc: Show pass number and direction during copying.
* rescuebook.cc (show_status): Show block pos instead of current_pos.
* main.cc: Show "an unknown number of bytes" for unknown isize.
* Added option '-B, --binary-prefixes' to ddrescuelog.
* Added new option '-C, --complete-logfile' to ddrescuelog.
* Added new option '-P, --compare-as-domain' to ddrescuelog.
* Improved speed of logic operations in ddrescuelog.
* rescuebook.cc (Rescuebook::do_rescue): Show warning when domain
is smaller than logfile.
* ddrescuelog.cc (do_show_status): Show logfile and domain extents
when domain is smaller than logfile.
* block.h: Class Block now forces the invariant by itself.
* Code reorganization. New class 'Logfile'.
* Added status message to rescue logfile.
* Many improvements to documentation.
* ddrescue.texinfo: Renamed to ddrescue.texi.
2013-07-09 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.17 released.
* Added new option '-l, --logfile-size'.
* Added new option '-w, --ignore-write-errors'.
* Option '--fill' has been renamed to '--fill-mode'.
* Option '--generate-logfile' has been renamed to '--generate-mode'.
* Added option '--sector-size' as a synonym of '--block-size'.
* Added option '--retries' as a synonym of '--max-retries'.
* Added option '--size' as a synonym of '--max-size'.
* rescuebook.cc: Trimming is now done from both edges of each
non-trimmed block. Largest blocks are trimmed first.
* rescuebook.cc: Largest blocks are now split first until
logfile reaches '--logfile-size' entries.
* logbook.cc (extend_sblock_vector, truncate_vector): Terminate
if truncation would discard finished blocks.
* rescuebook.cc: Mark failed blocks with 1 sector as bad-sector.
* logbook.cc (extend_sblock_vector): Remove last block of
logfile if it starts at isize and is not marked as finished.
* io.cc (show_status, update_rates): Detect a jump back in time
and adjust status.
* ddrescue.h (slow_read): Return false for the first 10 seconds.
* io.cc (show_status) Leave cursor after message so that ^C does
not overwrite it.
* main.cc: Don't require '--force' for generate mode.
* ddrescue.h (Logbook::logfile_exists): Don't return false if
logfile exists but is empty.
* ddrescue.texinfo: Added new chapter 'Using ddrescue safely'.
* Documented that 'direct disc access' only reads whole sectors.
* configure: Options now accept a separate argument.
* Makefile.in: Added new target 'install-bin'.
2012-06-11 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.16 released.
* Added new option '-K, --skip-size'.
* Added new option '-T, --timeout'.
* Changed short name of option '--try-again' to '-A'.
* Maximum skip size is now limited to 1% of infile size or 1 GiB
(whichever is smaller), rounded to the next multiple of sector
size.
* Set current_pos to end of block when reading backwards.
* The '-E, --max-error-rate' option now checks the rate of
actually failed reads, not the growth of error size.
* The option '-v, --verbose' now increases verbosity if repeated.
* Changed quote characters in messages as advised by GNU Standards.
* configure: 'datadir' renamed to 'datarootdir'.
* New files rational.h, rational.cc.
2012-01-01 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.15 released.
* Added new option '-a, --min-read-rate'.
* Added new option '-I, --verify-input-size'.
* Added new option '-x, --extend-outfile'.
* main.cc: Verify that infile, outfile and logfile are all
different.
* Non-tried blocks are now read aligned to cluster-size sectors.
* rescuebook.cc: Improved skip algorithm for the split pass.
* main.cc: Removed spurious warning about '-D' ignored in fill mode.
* ddrescue.texinfo: Improved description of algorithm.
* logbook.cc (change_chunk_status): Return an adjust value (-1, 0, 1)
to keep "errors" updated without calling count_errors every time.
* ddrescue.cc: Renamed to io.cc.
* Added 'ddrescuelog', a program for logfile manipulation.
2011-01-10 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.14 released.
* Added new option '-R, --reverse'.
* Added new option '-E, --max-error-rate'.
* Extended syntax '--max-errors=+N' to specify new errors.
* Changed short name of option '--retrim' to '-M'.
* Removed spurious warning about 'preallocation not available'.
* Code reorganization. New class 'Genbook'.
2010-08-27 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.13 released.
* Non-regular output files are no longer overwritten by default.
* Added new option '-f, --force'.
* Added new option '-p, --preallocate'.
* main.cc (write_logfile_header): Write command line to logfile.
* ddrescue.texinfo: Added info about logfile and recoverable formats.
* ddrescue.texinfo: Added a couple more warnings to the tutorial.
* testsuite: 'test1' renamed to 'test.txt'
* Revert to use 'long' instead of 'time_t' for time variables.
Ddrescue only needs counting seconds and 'time_t' causes
warnings on some systems.
2010-04-06 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.12 released.
* main.cc: Outfile is now created with mode 0666 if umask allows it.
* main.cc: New constant 'o_binary'.
* Makefile.in: Added quotes to directory names.
* Makefile.in: Added '--name' option to help2man invocation.
* testsuite/check.sh: Use 'test1' instead of 'COPYING' for testing.
* Use 'time_t' instead of 'long' for time variables.
2009-07-10 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.11 released.
* logbook.cc (update_logfile): Ask user in case of write error.
* rescuebook.cc (split_errors): Modified the split threshold.
* rescuebook.cc (copy_and_update): Verify after every read error
that the input file does still exist.
* ddrescue.cc (Rescuebook::show_status): Show the time elapsed
since last successful read.
* ddrescue.cc (set_signals): Ignore SIGUSR1 and SIGUSR2.
* ddrescue.texinfo: Improved description of '-d', '-D' and '-S'.
* ddrescue.texinfo: Improved description of algorithm.
* testsuite/check.sh: Verify that files are open in binary mode.
* Added logfile usage warning to 'ddrescue --help' output.
2009-02-19 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.10 released.
* Added new option '-T, --try-again'.
* rescuebook.cc: 'skip_size' has been made independent of 'softbs'.
* 'change_chunk_status' is now faster for large logfiles.
* Fixed overflow when reading from devices of undefined size.
* Block does no longer admit negative sizes.
* 'make install-info' should now work on Debian and OS X.
* New file testsuite/check.sh.
2008-11-17 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.9 released.
* Added new option '-m, --domain-logfile'.
* Verbosity control of messages has been simplified.
* Changed LONG_LONG_MAX to LLONG_MAX.
2008-02-24 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.8 released.
* Added new option '-g, --generate-logfile'.
* Added new option '-D, --synchronous'.
* Fill mode now works when outfile offset differs from 0.
* ddrescue.texinfo: Updated 'Fill Mode' chapter.
2008-01-04 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.7 released.
* Skips faster over damaged areas (small read, big jump).
* Logfile is kept minimized at all times.
* Rescuebook::errors now counts the error areas found.
* Target 'check' added to Makefile.
* rescuebook.cc (split_errors): Added new variable 'error_counter'.
* Added new option '-R, --retrim'.
2007-11-16 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.6 released.
* Code reorganization. New classes 'Fillbook' and 'Rescuebook'.
* logbook.cc (copy_non_tried): Added new variable 'skip_counter'.
* Added new pass that trims error areas backwards before splitting.
* Added support for sparse output files.
* Blocks longer than hardbs are now split at sector boundaries.
* Added new option '-F, --fill'.
* ddrescue.texinfo: Added new chapter 'Fill Mode'.
* Added status line to logfile.
* An interrupted retry pass is now resumed instead of reinitiated.
* Perfect resumability if interrupted during trimming or splitting.
* ddrescue.cc (set_signals): Handle also SIGHUP and SIGTERM.
* '--quiet' option also quiets error messages.
* Print a more informative error message when reading an old logfile.
* Added note to ddrescue.texinfo about old logfiles.
* Added some consistency checks.
2007-06-29 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.5 released.
* License updated to GPL version 3 or later.
2007-06-18 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.4 released.
* Added new option '-d, --direct'.
* Fixed a bug showing bad initial error size.
* Fixed error counting.
* Small changes to documentation.
2006-12-13 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.3 released.
* Some fixes made to 'configure' script.
* Added 'sddrescue' target to Makefile.in.
2006-04-03 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.2 released.
* Added new option '-C, --complete-only'.
* Added new argument parser that replaces 'getopt_long'.
* Logfile save interval is now dependent on logfile size.
* Small changes to documentation.
2005-10-10 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.1 released.
* 'iobuf' is aligned to the sector size for use with raw devices.
* Added a small tutorial to the info file.
* Added two missing #includes.
2005-06-07 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.0 released.
* A new logfile format makes multi-part rescue possible.
* Logfile is saved every 30 seconds.
* Logfile is now also saved in case of write error on outfile.
* Fixed a race condition that could result in data not written
to outfile but annotated in logfile if computer crashes at
the wrong moment.
2005-01-04 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.9 released.
* ddrescue is now part of the GNU project.
* Added configure script and info file.
* Two small bugs corrected.
* Added new option '-B, --binary-prefixes' to show binary
multipliers in numbers (SI prefixes are used by default).
* Numbers are accepted with decimal (SI) or binary multipliers.
* 'badblocks file' renamed to 'logfile'.
* Logfile is now also saved if max_errors are exceeded.
2004-12-14 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.8 released.
* Added new option '-n, --no-split' to disable splitting of
damaged areas.
2004-10-30 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.7 released.
* ddrescue now can be interrupted at any time, and resume
rescue at the same point later.
2004-09-28 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.6 released.
* Skips faster over damaged areas (tries 1 block first).
* Error messages have been improved.
2004-09-15 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.5 released.
* Badblocks file is now also saved if ddrescue is interrupted
while splitting damaged areas.
* Added man page.
2004-09-03 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.4 released.
* The project name has been changed to 'ddrescue' to meet
command name standards.
* Added long option names.
2004-08-18 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.3 released.
* Added badblocks file, making the rescue much more efficient.
2004-08-14 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.2 released.
* Fixed bug that sometimes ignored the last sectors of a damaged area.
* The algorithm is now faster in presence of errors.
2004-08-12 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.1 released.
Copyright (C) 2004-2016 Antonio Diaz Diaz.
This file is a collection of facts, and thus it is not copyrightable,
but just in case, you have unlimited permission to copy, distribute and
modify it.