Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
conserve validatechecks the archive much more thoroughly.
Progress percentage is now measured as a fraction of the total tree to be copied, which is a more linear measurement.
Removed internal timing of operations, shown in
--stats. Now that Conserve is increasingly aggressively multithreaded, these times aren't very meaningful, and the implementation causes some lock contention.
Conserve 0.5 uses a new format, and can't read 0.4 repositories. The new format has a single blockdir per archive for all file contents, rather than one per band. This significantly reduces space usage and backup time.
validatechecks some (but not yet all) internal correctness and consistency properties of an archive.
conserve debug block listand
conserve debug block referenced.
conserve list-sourcewas renamed to
conserve source ls.
Better progress bars including percentage completion for many operations.
validateshow a summary of what they did.
conserve versionshas a new
--sizesoption, to show disk usage by each version.
restoreprints filenames as they're processed.
--no-progressturns off the progress bar.
Commands such as
lsthat operate on a version, will by default operate on the last complete version, rather than defaulting to the last version altogether and then potentially complaining it's incomplete. Similarly for the
SourceTree::openAPI when given no
Some backup work is parallelized using Rayon, giving a mild speedup for large files. There is potential to much more work here, because backups are generally CPU-bound in Snap compression and BLAKE2 hashing, and Conserve should try to use every available core.
Various internal rearrangements including treating stored and live trees as instances of a common trait, to enable future features.
Large files are broken into multiple blocks of 1MB uncompressed content, so that memory use is capped and so that common blocks can potentially be shared.
Flush (sync) archive files to stable storage after they're written. In the event of the machine crashing or losing power in the middle of a backup, this should reduce the chance that there are index blocks pointing to data blocks not on the filesystem.
Tests show this has little impact on performance and it's consistent with Conserve's value of safety. (Windows 10 performance turns out to be ruined by the Windows Defender antivirus, but if you exclude the archive directory it is fine, even with this change.)
--uioption to choose plain text or fancy colored output, replacing
Color UI shows progress bars cleanly interleaved with log messages.
Filenames are now only shown during
-voption is given.
conserve versionsby default shows whether they're complete or not.
conserve versions --shortgives the same behavior as previously of just listing the version names.
conserve restorewill by default refuse to read incomplete versions, to prevent you thinking you restored the whole tree when it may be truncated. You can override this with
--incomplete, or select an older version with
- Archive format has changed from 0.2 without backward compatibility.
- New and changed commands:
conserve restoremakes Conserve a much more useful backup tool!
- Symlinks are backed up and restored. (Only on Unix, they're skipped on
Windows because they seem to be rare and to have complicated semantics.)
- New text-mode progress bar.
- Compression is substantially faster, through setting Brotli to level 4.