Bvckup 2 Changelog

What's new in Bvckup 2 Release 82.19.0

Mar 22, 2024
  • Patched an issue with Blake3 implementation on older CPUs by updating to most recent blake3 library version.
  • Patched several smaller one-off issues, including adding verbose logging around each of them.

New in Bvckup 2 Release 82.18.0 (Feb 8, 2024)

  • Patched an issue with alternate stream verification - for files that had several streams, one of which out of sync with the source, the verification error reported for the out-of-sync stream was also incorrectly reported for all other streams.
  • Kudos to Kristof for reporting the issue and then confirming the fix.
  • Added detection of 'last-access' timestamp support - the program now detects if "last-access" timestamps are supported by the source and backup volumes and it will suppress their copying accordingly.
  • Added control over 'last-access' timestamp copying - in cases when these timestamps _are_ supported on both ends, it's now possible to still suppress their copying. This was possible to do for several years with a config file edit, and this change now adds a way to do it through the UI.
  • Added support for tweaking job tile dragging parameters - it's now possible to change default 250 ms delay between left-clicking on a job tile and the tile popping up and being available for dragging up and down the list.

New in Bvckup 2 Release 82.17.1 (Jan 8, 2024)

  • A quick rebuild to address an issue with the archiving runs.

New in Bvckup 2 Release 82.17 (Jan 8, 2024)

  • Added support for suppressing archiving of select files:
  • When a backup job is set to archive deleted and/or modified files, it is now possible to suppress the archiving of certain files. If the archiving is triggered by deletion of the source file, the backup copy will be deleted instead; and if the archiving is due to the change in the source file, its backup copy will be updated in place (potentially using delta copying).
  • This option is configured by specifying a list of path patterns that can be wildcarded. The list is accessible via the "Archiving exceptions" setting in the Archiving section of the Pi section
  • Added support for retrying directory listing requests:
  • Apparently certain drive virtualization software (Box) may return a "Try again" failure when requesting a directory listing. This is a rare issue and the person who reported it went missing, so the patch is unconfirmed. It is however in place - the program will now retry once on these errors. It is possible change the retry count and the pause between the retries, both settings accessible through the "Pi" section. However due to some operational caveats these won't be formally documented.
  • Added "@Recently-Snapshot" to the default list of exclusions:
  • This is a folder where QNAP stores its volume snapshots that are _hardlink based_. This is not generally a folder you'd want to descend into when doing the backup -> it's now on the default exclusion list.
  • Note that this change affects only new backups, created with 82.17 or later. The config of existing backups is not touched.
  • Tweaked reparse point handling:
  • This has to do with errors that surface when trying to query reparse point details. In particular, if the RP is inaccessible, this sort of query would throw an "Access denied" error and it was not possible to suppress this error, because the query was done _before_ exclusion/inclusion rules were looked at. The net effect was that the job would emit an error that could've not been quietened.
  • The patch was to change the logging level from "error" to "info" in this particular case. After filtering rules are applied, the RP is re-queried again and at that time any errors are logged in red.
  • Third patch for the issue with alt stream verification on folders. The third time's a charm. It'd better be.

New in Bvckup 2 Release 82.16 (Jan 8, 2024)

  • Patched an issue with resetting the canary file - the program would sometimes panic when the canary file is reconfigured through the UI several times in a quick succession.
  • Patched a scan-phase issue when running out of disk space - when the local drive ran out of disk space while a backup job was in the scanning phase, then in some rare cases this would leave behind some bits of the scan data lingering in memory. They linger no more.
  • Patched an issue with applying engine-level job overrides - see https://bvckup2.com/support/forum/topic/1619 for details.
  • Provisional patch for problems scanning local device shares when running in a Terminal Server session. When the program runs in a TS session and it is set to backup to/from a local (client) drive via \tsclientx path - it may fail to do so. The underlying problem was that the program was accessing this share as \tsclientx (with a trailing slash) as it is conventional when working with folders. However this doesn't work for some versions of TS, so the patch attempts to work around this issue. It is _provisional_ because still waiting for the confirmation from the affected user.

New in Bvckup 2 Release 82.15 (Nov 4, 2023)

  • Re-patched the issue with folders' alternate stream verification - a new and improved revision of the 82.14 patch. Superior in every way.
  • Provisional patch for the issue with making remote VSS snapshots - this aligns the volume snapshotting code with how diskshadow does it, so it should - in theory - work in all cases involving RVSS that are supported by diskshadow. Internally it was a trivial change to the "impersonation level" requested by the program when initializing the COM subsystem used to talk to the VSS service.
  • Revised volume snapshot phase logging a little - just cosmetic changes to log additional information such as snapshot set ID, originating and target machines, etc.

New in Bvckup 2 Release 82.12 (Aug 25, 2023)

  • Added an explicit check for alternate stream support.
  • In theory, storage volumes indicate their support for alternate data streams (ADS) through their properties, along with the support of compression, encryption, spare files, etc.
  • In practice, some volumes would say that the ADS is supported, but will refuse to provide any details for specific files/folders with "unsupported". Clearly not very nice of them, so the program can now see past their trickery and check for ADS support by testing actual queries used to retrieve them.
  • Added support for a new type of scan-phase error code.
  • This has to do with https://bvckup2.com/support/forum/topic/1598
  • Added a workaround for GetKernelObjectSecurity failures
  • This too works around a bug in another people's code, which would first say it needs X bytes to return the answer and then fail with "not enough space" when given exactly what it asked for. So the workaround is to feed it 2X the space.
  • Added UI support for throttling "missed run" alerts
  • It's now possible to configure grace periods for missed backup run alerts directly from the UI. Additionally, it is now also possible to control how grace periods are reset and restarted. See https://bvckup2.com/support/forum/topic/1053/5864 for details.

New in Bvckup 2 Release 82 (Dec 20, 2022)

  • Executive summary:
  • Data consistency and safety / Core and UI improvements
  • Release at a glance:
  •     Support for backup verification
  •     Support for write verification
  •     Support for backup safeguards
  •     Support for read/write speed throttling
  •     Speed improvements across all backup phases
  •     Support for archiving modified files
  •     New $Archive folder structure
  •     UI support for 80+ advanced options
  •     Dark mode
  •     Assorted engine improvements
  •     Assorted UI improvements
  • Licensing changes:
  • Basic licenses are no more.

New in Bvckup 2 Release 81.26.0 (Oct 3, 2022)

  • Cosmetic tweaks and fixes in the UI - fixed a typo, rephrased several log messaged for clarity, etc.
  • Internal rework in preparation for the next release (R82) - certain changes to the UI framework to support new UI transition effects in the next release. Here's an example - https://bvckup2.com/wip/25052021

New in Bvckup 2 Release 81.24.1 (Aug 11, 2022)

  • Same as the base 81.24 release, but re-signed using alternative intermediate CA certificate from DigiCert to work around an issue described in [1].

New in Bvckup 2 Release 81.22.0 (Dec 10, 2021)

  • Reworked the engine to reject malformed file names when scanning - this is a follow-up to the change from the previous update and it's just something to make things a bit more logical in terms of what's happening when.
  • Upgraded xxHash3 digest to use newer version. This is a back-port from R82 preview builds, where it's a part of new default set of hashing algorithms used for delta copying [1]. It's also possible to use it in R81 if needs be, but it's best to wait for R82.

New in Bvckup 2 Release 81.17.0 (Sep 1, 2021)

  • Resolved an issue with quickly adjusting file/folder selection in backup settings.
  • More specifically, if a grand/parent folder of a currently excluded item was itself excluded, but before the former was picked up by the scanner, and the change was OK'ed, the program would panic.
  • This happened because item's own exclusion rule wasn't correctly cleared, so the rule set ended up with two exclusion rules back to back, with a more specific one being pointless. This tripped one of internal consistency checks, caused the program to exit with a "Something went wrong" message... which was as technically correct as it gets because something did go wrong indeed.

New in Bvckup 2 Release 81.16.0 (Jul 13, 2021)

  • Resolved an issue with stream and security attributes retrieval during the scan phase for certain types of locked-down setups
  • Previously, the scanner relied on standard Windows API to query this information. As it turns out these APIs don't always observe and make use of SeBackupPrivilege held by the Bvckup2 process [1] and they fail with Access Denied. The fix was to re-implement them using Native API
  • Put back an option for upgrading Personal licenses to the Pro level, now hidden by default

New in Bvckup 2 Release 81.15.0 (Jul 13, 2021)

  • Fixed an issue with program mode switching via command line.

New in Bvckup 2 Release 81.14.0 (May 17, 2021)

  • Internal code rework and tune-ups.

New in Bvckup 2 Release 81.13.0 (Mar 15, 2021)

  • Fixed an issue with variables not getting expanded in email alerts. The issue was introduced in 81.12.

New in Bvckup 2 Release 81.11 (Jan 11, 2021)

  • Fixed an issue with "staged" file copying - this has to do with copying files _without_ the use of the delta copier, in full.
  • When a file are copied in full, the program first copies it into a temporary file on the backup side and then renames this temp file to match the source file. This is referred to as "staged" copying and it helps preserving an older backup copy in case of abortive mid-backup failures.
  • The problem was that the program was looking at source and backup copies to decide which meta data (attributes, timestamps, etc.) should be cloned after the contents are updated. So if there _was_ an existing backup copy and its "created" timestamp matched that of the source, the program, being a pedantic little construct that it is, would skip updating this timestamp.
  • However with staged copying the backup copy is always created from scratch, so it needed ALL meta data to be cloned regardless of what the existing backup copy has.
  • So what ended up happening is that if a file was modified at source, then the next backup run would create a temp file, copy the contents and "last modified" timestamp, but the "created" time on that temp file would remain set to "now". On the next run, the program would notice that "created" timestamps are now out of sync and would re-update the file. This time it would sync this timestamp and put everything in a proper order.
  • That is, when files were copied in full, modified files were needlessly backed up for second time.
  • Kudos to Tom for tracking this down and not giving up on the issue.
  • Fixed an issue with service/desktop mode switching - in some cases if the program ran into a problem switching the mode, it would report it as a "cancelled" rather than "failed", further confusing the situation that weren't already going that well.
  • Revised 'created' timestamp replication logic - for the cases with a read-only source volume the program will now try and copy "created" timestamps.
  • This has to do with the fact that not all file systems support these timestamps and the program relies on active tests to determine what the case is. These tests can't be run if the volume is read-only, so previously this caused the program to assume that "created" timestamps are unsupported by the volume.
  • This nonsense is no more. From now on, if we can't determine if X is supported, then it is "unknown" and not "unsupported" => the new and improved handling of the timestamp replication.
  • Humanized error 433 - a smaller change to log a better message when running into this error, which is ERROR_NO_SUCH_DEVICE.
  • Extended list of default exclusion rules - added ".dropbox.cache" and "Microsoft\Edge\User Data\*\*\*Cache*" to the list of default exclude rules.
  • Another round of internal code rework. It is even more beautiful than before, which is always a nice thing to have.

New in Bvckup 2 Release 81.10 (Nov 24, 2020)

  • Internal rework of the code responsible for text string manipulation, self-checks (asserts), generic data containers and CPU feature detection.
  • As a side effect of this, finally got around to counting the number of self-checks that ship with every release. There are 2184 of them in 81.10, spread over 204,176 lines of code that comprise the full source of the program.
  • Added detection of ECC vs non-ECC RAM on the host machine. This information is meant to assist with analyzing and confirming crashes, caused by spontaneous memory bit flips.
  • Cosmetic cleanup of the logs, including NT API error reporting.

New in Bvckup 2 Release 81.8.0 (Sep 22, 2020)

  • Revised and improved the command-line control interface. It's now possible to specify backup jobs using the name of their queue, and it's now possible to apply additional commands (simulate, delete, unload, reload) to several jobs at once.
  • Added an option for refreshing Personal and Basic licenses. This is to support the case when a Pro license upgrade is initiated through the web interface rather than from within the program.

New in Bvckup 2 Release 81.7.0 (Sep 7, 2020)

  • Executive summary:
  • Faster backups via fully parallelized execution.
  • Release at a glance:
  • Support for executing multiple backup steps in parallel (!)
  • Support for waking up computer to run scheduled backups
  • Support for password-protecting UI access in service mode
  • Support for replicating case changes in file and folder names
  • Smaller changes:
  • Improved delta copying performance with mid-sized files
  • Improved IO configuration defaults for bulk copying
  • Improved progress reporting for longer copies
  • Improved log indexing performance

New in Bvckup 2 Release 81.6 (Aug 7, 2020)

  • Fixed handling of corrupted files in the copying module:
  • This covers a particularly exotic case when a backup copy gets corrupted (at rest!) in a way that still allows extending it, but prevents it to be trimmed to the exact size. Basically, we would append, say, 1 MB to such file and then ask it to be trimmed to exactly that new size - and the latter request will fail. Copying module didn't handle it terribly well because of an overly strict internal check. Removed the check, solved the problem. The end.
  • Fixed handling of certain exclude/include rule combos - this has to do with https://bvckup2.com/support/forum/topic/499/7211:
  • Kudos to @highend for the report.
  • Fixed an issue with the file tree browser:
  • When the Backup Settings > Backup What window is opened, the file/folder selection widget starts populating the tree. It's a process that may take a while and it runs in the background. The issue was that if the window is OK-closed while the tree wasn't fully populated, any existing excl/incl rules that applied to not-yet-discovered items were discarded.
  • Kudos to Eden for the report:
  • Improved file tree browser rendering performance - tangentially related to the previous item, basically improved the rendering speed of the widget by at least a factor of 2. Beware of the temptation to use WM_SETREDRAW, use with utmost care and only after due testing.
  • Also added an explicit indicator of whether the background scan is still in progress or not - https://bvckup2.com/wip/r81-6-scanning-spinner.gif
  • Revised symlink verification logic in the scanning module:
  • In later 79 releases the scanning module got a new check, whereby it would query the attributes of a location that a symlink is pointing at and would complain and ignore the symlink if the query fails. Now, as you can probably guess, in some cases this check misfired. More specifically, it will fail when backing up from a remote share and the symlink points at a location that is local to the remote machine.
  • Kudos to Milan for the report.

New in Bvckup 2 Release 81.5 (Aug 7, 2020)

  • Fixed an issue with monthly backup scheduling. One part of the backup scheduling code was erroneously using an _average_ month length (of 30 days) when calculating the date of a last missed backup run. In particular, the issue was triggered by a July-August combo, because both months are 31 days in length. This led to the date being one day off and that tripped an internal consistency check further down the road.
  • Added an option for suppressing the "live file" warning. This has to do with a warning added to R81 series, whereby the file copying module will check if the source file size changed during the copying and log a message to that effect and some suggestions. This release includes an override for suppressing this warning, because there are setups where backing up "live" files is a routine.

New in Bvckup 2 Release 81.4 (Aug 7, 2020)

  • Reworked code in several places for clarity and speed. This is a purely internal rework. It has to do with rolling out new IPC (inter-process communication) message packing [1] and a revised version of list/tree containers [2]:
  • [1] https://github.com/apankrat/cpp-serializer
  • [2] https://github.com/apankrat/notes/tree/master/intrusive-containers
  • Fixed an issue with not recognizing some USB disks as removable. Disks that Windows reported as "fixed" but with a "surprise" removal policy weren't treated as removable, and backups going to/from these disks did NOT get device tracking automatically enabled for them.

New in Bvckup 2 Release 81.3 (Aug 7, 2020)

  • This is 81.3 with a small patch for an one-off issue with the former. If you run into 81.3 reporting "Something went wrong", go Help > Menu > [Check for updates] and update to this release.

New in Bvckup 2 Release 81.2 (May 15, 2020)

  • Resolved an issue with delta copying zero-sized files. More specifically - files that show up as large during the scan but then end up being empty when the program gets to actually backing them up.
  • Added an Easter egg...

New in Bvckup 2 Release 81.1 (May 15, 2020)

  • Resolved an issue with the planning module not being able to produce correct backup plan when multiple files from different levels of a folder were moved to a new directory and the folder itself was deleted. In certain cases the resulting plan would have two steps in the wrong order, which was caught during the plan validation phase, which in turn triggered an abort.

New in Bvckup 2 Release 81 (May 8, 2020)

  • Parallel execution:
  • Big, new and very important feature in Release 81 is an option for executing multiple backup steps at once.
  • When enabled, it helps speeding up backups, with the effect especially pronounced when backing up over network and when working with smaller files.
  • First prototyped in 2016, then revised a number of times and finally arriving at stable beta in last November, it's been a long time coming.
  • This is a Pro feature. It is enabled by default for all backups and it is configurable in Backup Settings.
  • Waking up computer to run scheduled backups:
  • When enabled, this option will cause Bvckup 2 to ask Windows to wake up computer around the time of the next scheduled backup run. If no user interaction is registered while the backup is running, Windows will put it back to sleep once the backup is done.
  • It's a program-wide option that can also be set on per-backup basis with an override.
  • Password-protecting UI access in service mode:
  • With Release 81 it's now possible to have the UI prompt for the password when it is being started up in service mode. This option is primarily meant for preventing non-admin local users on the host machine from opening the UI and messing with the setup.
  • Replicating case changes in file and folder names:
  • As of Release 81 the backup planner will now check the case of file and folder names and correct any differences as required.
  • It will check if the file system on the backup side supports case preservation to begin with and suppress renames if it doesn't.
  • As per usual, this behavior can be suppressed with an override if needed.
  • Smaller changes:
  • Improved delta copying performance with mid-sized files - this has to do with how block hashing is distributed between the CPUs, which helps completing hashing faster for smaller files.
  • Improved IO configuration defaults for bulk copying - revised default IO buffer counts and sizes based on things learned in past several months.
  • Improved progress reporting for longer copies - this has to do with the UI feature of displaying additional decimal digits in %-age counter when the copy is going slow. Previously, the decimal precision was not reset when the copy was completed, so if the next copy was fast, it ended up showing a %-age counter that showed a frenzy of activity. No more of this.
  • Improved log indexing performance - this has to do with how the logging system works in the program. The backup engine is a log writer and the UI is a log reader. Logs can grow big, so the UI builds a separate index in order to be able to display them quickly. Index building involves parsing logs, line by line. This release reworks how this parsing is done, speeding it up by a factor of 300.

New in Bvckup 2 Release 80.12 (Mar 19, 2020)

  • Executive summary:
  • This release implements a licensing model change. In a gist, we are switching from the use-based licensing to the feature-based model.
  • New license types
  • Previously, the type of required license was determined by whether the software was to be used on one's home computer for processing personal data or in any other setup.
  • With this release, the license determines the feature set the program:
  • Pro licenses are all inclusive and cover all features, both present and planned.
  • Basic licenses are meant for a simpler use and include a subset of Pro features. It is now considered complete and it will not be expanded further.
  • Additionally, the Server edition of a Pro license is now be required for Windows Server installations.
  • Support and upgrade access:
  • Another change is with the tech support and software upgrades.
  • Basic licenses will be limited to forum-based support and minor updates (patch releases) only. Pro licenses will come with a year of Pro support that includes email-based support and access to major updates (upgrades).
  • After a year, it'll be possible to extend Pro support for another year for a fee of 20% of the original license cost. This is optional. Should it be not extended, the installation will no longer be eligible for _upgrading_ and its tech support will downgrade to the public forum option.
  • This is essentially a "rolling" form of a conventional upgrade model when a new major version is released every year and existing users have a choice of either staying with the last year release or upgrading at a substantial discount.
  • Status of existing licenses:
  • All existing licenses and activation codes remain valid and they will continue to function exactly as they did before.
  • Personal and Professional licenses will be treated by new program versions as if they were Pro licenses, of Workstation and Server kinds respectively.
  • They will also have non-expiring Pro support coverage, meaning that they will receive all patches and upgrades on us, forever.
  • In other words, the program now supports 4 licenses types - Personal, Professional, Basic and Pro - but only the new ones are available for purchase.

New in Bvckup 2 Release 80.11 (Feb 17, 2020)

  • Fixed an issue with repeated re-copying of unchanged security attributes. The issue was introduced in 80.10 and it caused DACL attribute of a file to be recopied on every run even if it remained unchanged. DACL cloning is off by default, so it only showed up in setups with the cloning of security attributed was explicitly enabled.

New in Bvckup 2 Release 80.10 (Feb 17, 2020)

  • Added new adaptive %-age display for longer file copies - the UI will now automatically increase the number of decimals in the completed %-age value if the copying is going slow. The goal is to ensure that we _always_ show progress regardless of how slow it goes, but without it spinning _too_ fast -
  • Increased refresh rate of the progress reporting to 20 Hz - a smaller change that bumps up the number of progress bar updates from 4 to 20 times a second. Make the animation look a bit nicer and smoother.
  • Added display of the name of an AD stream being copied -
  • Added an option for ending all lines in email alerts with a space.
  • This has to do with a bizarre case when a text in email alerts had every line split into two parts with a split point steadily crawling from the back of the line to its beginning. First line will have only one symbol clipped, second - two, etc.
  • The person who reported this didn't manage to find the exact cause, but they reported a workaround - adding a space at the end of each line. It's a fix transparent to normal use, so this is what the program will do from now on. It is however possible to switch this off if needed.
  • Added "Finishing up" section to the log of a backup run
  • It groups together VSS snapshot disposal, device/media ejection, email alert dispatch and post-backup command details. Just to make things a bit more organized compared to how it was before.
  • Fixes:
  • Fixed an issue with copying AD (alternate data) streams - this was introduced in 80.9 with addition of the new time/speed estimator. It basically didn't know AD streams existed so it panicked when it started to get progress updates on them.
  • Fixed handling of running out of disk space in the planner - this has to do with the swap file used by the planning module breaking due to running out of disk space. There was one part in the planning code that assumed that retrieving certain data from the swapped storage always succeeded... whereby it did not, not always. Fixed. The backup is still aborted, of course, but now in a far more classy fashion.
  • Fixed handling of certain mid-file write errors - another issue rooted in the new estimator. Mid-file write errors may, under certain circumstances, cause the copying progress to jump back. The estimator quite correctly assumed that this shouldn't be happening, so the copying code has been hammered in place to conform. The progress now always goes forward.
  • Several cosmetic fixes in the logs and in the UI. There was one place where it could log "1 bytes", the tabbing order on More Settings page was wrong, etc.

New in Bvckup 2 Release 80.0.0 (Jun 18, 2019)

  • New license types:
  • Previously, the type of required license was determined by whether the software was to be used on one's home computer for processing personal data or in any other setup.
  • With this release, the license determines the feature set the program
  • Pro licenses are all inclusive and cover all features, both present and planned.
  • Basic licenses are meant for a simpler use and include a subset of Pro features. It is now considered complete and it will not be expanded further.

New in Bvckup 2 Release 79 (May 7, 2018)

  • Release at a glance:
  • Brand new copying module dubbed the "ultra copier"
  • Support for retrying backup steps on transient failures
  • Support for disabling tray alerts for missed backups
  • Notable fixes:
  • Resolved an issue with losing UI config file on machine reboots
  • Resolved two issues with handling of file symlinks
  • Resolved an issue with "Another instance is running" popup
  • Smaller changes:
  • Flushing is now Off by default for removable devices
  • Delta copying thresholds are now 16 MB and 64 MB (see below)
  • New progress bar for bulk and delta copying
  • Ctrl-A now selects all text in edit boxes
  • "More" links are now shown in blue
  • Better handling of the OneDrive folder and offline files
  • Pre/post-commands now launch .bat files via "cmd /c ..."
  • Templating of new backup jobs is now simpler
  • The Ultra Copier:
  • This is a big change, which was long due. The central piece of code that shuffles data from a file to its backup copy was completely redone. The previous version is still perfectly fine, but it is now several years old and we've learned a thing a two during that time.
  • In short, the ultra copier is:
  • Faster in bulk copying and faster in processing of smaller files.
  • Faster in delta copying. Much faster. To the point that it can now shovel data between two NVMe drives with virtually no impact on the speed over regular bulk copy.
  • Copying is now resumable after cancellations and IO errors. In fact, you can now yank an USB drive from its port in the middle of a write and Bvckup 2 will automatically correct the file corruption that this may cause, while preserving as much of existing data as possible.
  • Additionally, the ultra copier looks at the exact drive type (HDD, SDD, NVMe, etc.), USB connection details and a network protocol version to adapt its IO profile for the setup.
  • If you have some time, do read through the linked posts. It's one of more interesting changes to the program in a while.
  • Support for retrying on transient failures:
  • Starting with this release the backup engine will retry backup steps when they fail in a certain way. By default, the retrying is enabled for network-related failures as this is the number ones source of intermittent failures that tend to resolve themselves in a short amount of time.
  • The retry schedule is 20 times 15 seconds apart, configurable as per usual.
  • The engine already had a list of so-called "fatal errors" which cause a backup run to be aborted when encountered. This list includes errors like "Device not found", "Volume dirty" and everyone's all time favorite "Disk corrupted".
  • Disabling tray alerts for missed backups:
  • By a popular request, it's now possible to disable systray icon blinking when a periodic backup misses its scheduled run. The error will still be logged, but the icon won't blink.
  • However, this is a bit like sweeping dust under the carpet. A better option is to suppress or to delay these alerts exactly in more precise manner -
  • Notable fixes:
  • Resolved an issue with losing UI config file on machine reboots:
  • UI's ini file *was* saved in response to Windows "we are rebooting" notification, but it was initiated _after_ the UI responded to the latter. So in some cases Windows ended up nuking the program before the save was completed.
  • Resolved two issues with handling of file symlinks:
  • The engine erroneously skipped symlinks that were pointing back into the source tree. This is a _folder_ processing logic (because we'd end up in a loop if we were to allow that). File symlinks we should be following regardless of where they point.
  • When copying a file via symlink, the engine used wrong API to query its size, so it ended up always thinking the size was 0. This would've not been a problem if the engine didn't have an optimized copying routine for zero-sized file. This routine works by creating a backup file and then closing it write away, without attempting an IO.
  • Resolved an issue with "Another instance is running" popup
  • This was due to the program being started twice in rapid succession.
  • Smaller changes:
  • Flushing is now Off by default for removable devices
  • Previously the engine would force-flush file buffers after copying each file if the backup device was removable. In retrospect this is not really needed, because it's a duplicate of Windows' per-device write cache policy, which is what needs to be changed IF a device is indeed prone to sudden removals.
  • Delta copying thresholds are now 16 MB and 64 MB (see below)
  • That is, when enabled, delta copying is now used for all files over 64 MB and for recently-modified files over 16 MB, whereby "recently" is "within last 30 days".
  • New progress bar for bulk and delta copying
  • Any excuse to redesign a progress bar is a good excuse.
  • Ctrl-A now selects all text in edit boxes
  • As it turns out it's NOT a default behavior of native Windows controls.
  • "More" links are now shown in blue
  • In some configuration windows there's a plaintext "More" at the bottom right corner. It used to be dark gray, so some people assumed it was a disabled option and never bothered to try it... even though it changed color invitingly on hover.
  • As of this release, these are blue. Looks a bit more busy, but hopefully a bit more actionable too.
  • Better handling of the OneDrive folder and offline files:
  • The UI now doesn't complain when you are setting up a backup of C: that goes into a OneDrive folder:
  • C: => C:UsersfooOneDrive
  • Previously, it would say "Destination is a subfolder of the source" and refuse to OK the setup.
  • The engine now understands "offline files" and complains intelligently when it fails to copy them - https://bvckup2.com/wip/24042018
  • Pre/post-commands now launch .bat files via "cmd /c ..."
  • If a pre/post-command ends with ".bat" and the whole command is a filename, then the engine will launch it with "cmd /c <command>".
  • Templating of new backup jobs is now simpler
  • This is an internal change that cleans up the initialization of the default exclusion list. Just rest assured that it's all tidy and neat there now.

New in Bvckup 2 Release 78.7 (Oct 6, 2017)

  • Re-reworked how security attributes are copied to the backup. For the context, see here - https://bvckup2.com/wip/05102017

New in Bvckup 2 Release 78.6 (Oct 6, 2017)

  • Added support for copying NTFS alternate data streams on files. See here for details - https://bvckup2.com/wip/04102017
  • NOTE that streams on *folders* are NOT replicated or processed in any way. This is by design, but it's subject to change in later releases.
  • Reworked the [More Options] > [Copy Also] section of backup settings. See here for details - https://bvckup2.com/wip/03102017
  • Reworked how security attributes (owner, group, DACL, SACL) are cloned. Previously this was done with NtQuery/SetSecurityObject from Native API and it was setting each piece separately. Now it uses Get/SetSecurityInfo from Win32 API and it queries and sets all required bits in one go.
  • Switching back to desktop mode now unconditionally removes "Bvckup 2 Service" user account if it exists. Previously, it was removing this account only if it was still used by the bvckup2 service. This led to an issue when the service was switched to run under another account and the app was switched to the desktop mode. At this point trying to switch the app back to the service mode would fail (as a precaution) as the "Bvckup 2 Service" account would already be there.
  • Added support for 0xA000001D reparse point type, it is now ignored by default, as per https://bvckup2.com/support/forum/topic/988
  • Fixed an issue with reading plaintext passwords from the INI files, as per https://bvckup2.com/support/forum/topic/411/5461
  • Fixed an exclusion rule for OneDrive internal file to actually _exclude_ the file rather than _include_ it, as per https://bvckup2.com/support/forum/topic/981/5453

New in Bvckup 2 Release 78.5 (Sep 21, 2017)

  • Notable changes include:
  • Completely reworked file/folder exclusion/inclusion module
  • Support for "quiet times" in the scheduler
  • Support for verbose reporting of configuration issues
  • There were several important features in later 77.xx releases that are too worth mentioning:
  • Faster scanning of over-the-network location
  • Support for grouping jobs into scheduling queues
  • Periodic scheduling fallback for faulty real-time jobs
  • New mode for email alerts - "on changes and errors"
  • New companion tool:
  • Timestamp Clamper allows resetting file and folder timestamps that fall outside of specified time range. In particular, it can be used to hammer in place timestamps that are too far in the past or the future.

New in Bvckup 2 Release 77.5 (May 18, 2017)

  • Added detection of drives getting reformatted:
  • This was long due and it has to do with the case when you'd stick in a new drive, launch Bvckup 2, _then reformat the drive_ and finally configure a backup job to use it.
  • What ended up happening was that the job got pinned to the original ID of the drive rather to its new one that it acquired after the reformat. The job will run just fine, but on the next app restart it will go into "expecting original device" state.
  • This is turn was because the app was tracking just the _device_ events, but not the _volume_ mounts/dismounts. So it was happily oblivious to the reformat changing drive's ID (or to be precise - its volume serial number).
  • So, no more. Got its device tracking brains augmented as required.
  • Added per-job override for email alert To address:
  • It's now possible to have job-specific email alerts to be sent to a job-specific email address. This is controlled by the following setting in job's settings.ini -
  • conf.alerts.email.to [email protected]
  • Before changing the INI please read respective FAQ entry.
  • Reworked how volume label changes are detected:
  • Previously, the app re-queried labels of all present drives every few seconds and that helped keeping its internal drive information list in sync with the reality.
  • Polling is not elegant in general. Crude even. So this got reworked to use the very same volume event tracking mechanism that is now used for detecting drive reformatting. It's slim, beautiful and it works.
  • Except for TrueCrypt volumes
  • TrueCrypt workarounds are now extended to VeraCrypt:
  • There are now 2 workarounds for TC quirks and several TC-specific error messages (e.g. when trying to use shadow copying with TC volumes).
  • One workaround is for detecting TC volume mounting/dismounting when in service mode
  • Second workaround is for detecting TC volume label changes. It involves periodically re-querying TV volume labels, which is not elegant, crude even. But there's no other way.
  • So, long story short, Bvckup 2 now treats TrueCrypt and VeraCrypt as synonyms, so all the quirks that VC inherited from TC should now be handled just as their originals.

New in Bvckup 2 Release 77 (Mar 10, 2017)

  • Log viewer improvements:
  • Log viewer can now be switched to show just the errors and their immediate context. May not sound like much of work, but it maps onto a lot of complexity behind the scenes.
  • It's now possible to hover over longer log entries to see more of them. Again, you'd think it'd be something simple, but - no. This. Is. Windows.
  • License upgrades:
  • As you likely know the main difference between two license types is the permitted type of use for the software. Personal license is strictly for backing up personal data on your home computer, no exceptions. All other cases require a Professional license
  • This release add the "Upgrade to Pro" option that allows those who need to rectify their Bvckup 2 licensing to do just that. This options also acts as a stepping stone for the upcomin licensing changes that will introduce *functional* differences between license types.
  • "Symantec" update mode:
  • Norton Security line of Symantec products has a very poorly thought-through feature whereby they silently remove an .exe file IF it hasn't yet been seen by a sufficient number of Symantec's users
  • This is their take on "reputation-based" white listing, but I am frankly not sure how many half-brains they needed to pool together to design it this way. The only workaround is to send them an explicit request to whitelist a new version before it's made available to anyone using their security products
  • Note that Microsoft does something similar with its SmartScreen service, *but* they also correctly respect the presence of EV Digital Signatures on the files and whitelist these automatically
  • Long story short - as of this release Bvckup 2 will check if there exists HKEY_LOCAL_MACHINESoftwareSymantec registry key, and if it does, it will include a note to that effect in its request for updates. Upon seeing such note our update server will withhold new versions from them until these versions go through the Symantec's whitelisting process, which is something that we'll try and do shortly after each release
  • You can turn this feature off by setting updates.conf.av_aware to 0 in bvckup2-engine.ini (making sure, of course, to stop the app before editing the INI)
  • Additional functional changes:
  • Added support for Windows Image Container reparse points - these are now simply ignored
  • Added support for vendor quirks to the device tracking module - this has to do with external drive enclosures made by Icy Dock (and, no, I haven't heard of them before either).
  • These little fellas override drive serial number (from ATA/IDENTIFY) when it's reported to the computer and they also *randomize* it on every plug/unplug. No idea why, but as of this release device tracking is NOT automatically enabled for removable devices IF they have a device ID in RANDOM_<hex-number> format.
  • Added support for using pre-backup commands as conditions - that is, it's now possible to use a pre-backup command to quietly cancel a backup run if certain conditions aren't met. The app will execute the command, look at its return value and if it doesn't match specified value, it will abort the run without logging an error. This is set up by setting the following two entries in settings.ini for a job: conf.command_post_crit 2 conf.command_post_rc --expected return value for the command--. The key here is the value "2" in the first line which stands for "advisory". The other two possible values is "1" for "critical" (which abort the backup with an error if the return code doesn't check out) and "0" for "ignore" (which merely executes the command and doesn't do any return value checking at all).
  • Additional UI changes:
  • Added new "Welcome" mini-guide for the first-time users
  • Revised UI wording in several places for clarity
  • Issues resolved:
  • Resolved an issue with scanning empty locations at a device root - that is, the app would refuse to run a backup to the root of a drive, e.g. X:, if the drive was completely empty. Typically, even freshly formatted drives have at least _something_ on them (System Volume Information folder, for example), so it took a while for this issue to surface.
  • Resolved an issue with timestamp and attribute matching filters - just what it says, in some cases exclusion/inclusion rules that were set to match on attributes/timestamps weren't triggering as they should.

New in Bvckup 2 Release 76.15 (Dec 27, 2016)

  • Service account passwords now conform to Windows complexity requirements as per built-in security policy -- more specifically, the app now ensures that a randomly generated password for the bvckup2 service account contains an uppercase, a lowercase and one of digit characters.
  • DFS reparse points are now processed by default -- that is, reparse points of 0x8000000A type are now traversed during the scanning phase and generally handled as regular folders.
  • "No backups for 5 minutes after a reboot" option now supports Windows 10 reboots in Fast Start mode -- just what it says on the label, this option now properly works on W10 regardless of the reboot style.
  • Fixed an UI issue in the "Scanning the archive" phase -- oddly enough the UI was missing a human description for this phase. No more.
  • Fixed multiple UI issues with higher DPI display modes -- this mainly covers the appearance of comboboxes and droplists in secondary UI windows like Email Alerts. They appeared shorter in height than they supposed to be.
  • Fixed an UI issue with the How To Send window layout -- minor OCD cleanup with 2px misalignment of some controls.
  • Fixed handling of external "status *" command.
  • Improved handling of swap file failure -- largely internal thing related to how the app handles edge failures in very large backups.

New in Bvckup 2 Release 76 (Jul 18, 2016)

  • Support for auto-updates in headless (service) mode
  • Support for silent and scripted installation
  • Support for locking down command line control
  • Support for activation via command line
  • Support for private update channels
  • Support for inventory tags
  • Support for switching the app mode from command line
  • More robust switching between desktop and service modes
  • A bit more visible update notifications
  • Revised version of system IDs as used for license binding
  • New email alert for when the app becomes unlicensed
  • Formal support for HFS+ volumes
  • Assorted smaller changes, bugfixes and UI tweaks

New in Bvckup 2 Release 75.9 (Jun 10, 2016)

  • Changes to the security attributes (Owner, Group, DACL) are now monitored for if the backup job is set to copy them.
  • Previously, if a job was set to also copy Owner, Group or DACL information, it would do that only when file (or folder) was updating for some other reason. That is, it wasn't detecting changes to the security attributes, but it would gladly copy them when it had a chance.
  • As of this release the app will now also query and compare security descriptors and then spit out respective "update" steps as needed.
  • Note that it's also possible to clone SACL, but
  • (a) this requires a manual edit of a backup INI file, because
  • (b) accessing a SACL, even for reading, requires special privileges. The app *will* request them as needed, but if they aren't available, there'll be lots of interesting errors. Hence the extra hoops to jump through.
  • Resolved the "~.swp file is in use" issue during the scan phase.
  • In case when a destination snapshot file gets corrupted (due to improper PC shutdown for example), the app would previously log a cryptic error as per above. Resolved now. Resolved an issue with network share monitoring.
  • This is related to an issue when the app would stop trying to access remote shares *using configured credentials* while in the "Waiting for the network location..." state. This in turn was happening if the app was launched almost immediately after the reboot, when Windows Networking wasn't fully initialized and Windows was returning all sorts of odd errors when the app tried accessing the share. Long story short - this is now resolved. Kudos to Richard for pain, suffering, logs and testing.
  • Fixed an issue with backup jobs getting disabled after waking
  • up computer from sleep.
  • Just as it says on a tin - in certain cases waking up computer would caused backups get disabled. This was due to a change made in one of the earlier 75 releases.
  • Fixed "elapsed time" env. varable being set to an invalid value.
  • Code that set up the "elapsed_time" variable for the post-backup command and email alerts wasn't any good. Reworked now and it should be showing right things in right spots. Kudos to Mark for spotting this.

New in Bvckup 2 Release 75.8 (Jun 10, 2016)

  • Resolved an issue with network share monitoring.
  • This is related to an issue when the app would stop trying to access remote shares *using configured credentials* while in the "Waiting for the network location..." state. This in turn was happening if the app was launched almost immediately after the reboot, when Windows Networking wasn't fully initialized and Windows was returning all sorts of odd errors when the app tried accessing the share. Long story short - this is now resolved. Kudos to Richard for pain, suffering, logs and testing.
  • Fixed an issue with backup jobs getting disabled after waking
  • up computer from sleep.
  • Just as it says on a tin - in certain cases waking up computer would caused backups get disabled. This was due to a change made in one of the earlier 75 releases.
  • Fixed "elapsed time" env. varable being set to an invalid value.
  • Code that set up the "elapsed_time" variable for the post-backup command and email alerts wasn't any good. Reworked now and it should be showing right things in right spots. Kudos to Mark for spotting this.

New in Bvckup 2 Release 75.6 (Jun 10, 2016)

  • Fixed Network Login dialog allowing for an empty username
  • Fixed an issue with the "Export configuration" menu option
  • Fixed an issue around the out-of-disk-space condition
  • Fixed an issue with a network drive resuscitation code
  • Destination snapshot can now be discarded based on its age
  • This is related to the "Detecting changes" preference in settings of a backup job. When using destination snapshot you may now set the app to drop it once it reaches certain age and force re-scan of destination.
  • This behavior is controlled by "conf.scanning.max_snapshot_age" line in backup's settings.ini, which can be set to "5 min", "6 hours", "7 days", "8 weeks", etc.
  • As per usual - make sure to exit the app before editing the INI or your changes will be ignored and lost.
  • Env. variables can now be used in source/destination paths
  • As it says on a tin, the Backup From can now be set to "%LocalAppData%\Xyz" and it will be expanded into a full path when the job runs.
  • The caveat is that the app will NOT monitor these sort of location for availability, so it can't be used with device tracking and network share monitoring.
  • Froggie, this file is used during active file system testing, the purpose of which is to determine effective timestamp resolution, attribute support and few other operational parameters.
  • Bvckup 2 had this functionality since day one of its pre-beta. It's just that in 75.5 the name of this temporary file was changed, that's probably why you noticed it.
  • The app caches the results of these tests, so you should not see this happening more than once per job (unless you re-run it with Ctrl-Go, which will flush this and other cached info).

New in Bvckup 2 Release 75.5 (Jun 10, 2016)

  • Release 75.5 is out.
  • Cosmetic fix for an error message logged during destination scan
  • A workaround for a file system testing issue with certain NAS devices
  • Updating is optional. Direct download link: https://bvckup2.com/update

New in Bvckup 2 Release 75.4 (Jun 10, 2016)

  • Resolved an issue with over-the-network shadow copying - this has to do with using shadow copying when the source is a network share.
  • Added a UI option for resetting the list of file exclusions - it's now possible to reset the list of manual exclusion/inclusion rules (as seen in Backup What part of the backup configuration) to the built-in default.
  • In particular this makes it possible to populate this list when using the "start with the blank list" option.

New in Bvckup 2 Release 75.3 (Apr 21, 2016)

  • Changes:
  • Resolved an issue with loading of backup jobs that contain non-ASCII symbols in any of their text fields
  • Resolved an issue with window position getting sometimes reset on launch
  • Resolved an issue with parsing "local path" mount points
  • Resolved a wheel-scrolling issue with high-precision mice
  • Resolved issues around opening and minimizing of the UI when Windows Explorer is not running

New in Bvckup 2 2 Release 75 (Apr 15, 2016)

  • SMART diagnostics and Diskovery:
  • The original plan was to ship SMART diagnostics [1] with this release, but Microsoft released W10 Insider Preview that changed the way system tray works and through that they effectively broke the app [2]. This forced the release to be pushed forward, so the SMART module didn't get in.
  • The good news is that the SMART code itself is actually done and working. Moreover, it is now also wrapped into an app of its own, which is currently in the late stages of beta and which you are of course are more than welcome to join. It's called Diskovery.
  • UI ENHANCEMENTS;
  • New general mechanism for accessing advanced features:
  • Several existing configuration windows got equipped with "More" buttons at the bottom left corner. Clicking on it expands the dialog vertically and injects more advanced (or less commonly used) options. This is currently employed in "Preferences", "Network Logon", "Filters" and "How To Send (Email Alert)" dialogs.
  • Support for size- and time-based filtering:
  • Previously it was possible to include/exclude items in the source location based on their names and attributes. With R75 it's now possible to filter items based on their timestamps and to filter files on their sizes. This basically enables rules like "files under 5 KB", "between 10 KB and 10 MB", "created before 2016/04/15" or "modified between [now - 2 days] and [now]". You get the idea.
  • Support for advanced Network Logon options:
  • When connecting to remote shares, two more options are now accessible through the UI - whether to login unconditionally and whether to tear down existing connection if there's one in place. These has been around since the beta, but they were configurable through a manual INI edit only.
  • Support for copying log snippets:
  • Right-click on a log entry to copy either a line or an entire block, with some nuances.
  • A quieter UI:
  • The UI will no longer issue a warning if a backup job finished with an error during the previous application run.
  • The UI can now be told not to register (and complain about) backup runs that were missed while the app wasn't running. This is done with the following line in the backup's settings.ini: 'conf.missed_run.register_on_launch 0'
  • Added an option for suppressing systray alerts triggered by a missed run. This is done with the following setting: conf.missed_run.alert.ui 0
  • Added an option of a grace period during which missed runs will not be registered as backup failures. For example, if you plug your external drive once a day but at a different time, then by setting a grace period on your hourly backup job to 24 hours you will force the app to raise an issue only if there were no backups for 24 hours. This is controlled by the following setting: conf.missed_run.grace_period, 24 hours, whereby "24 hours" can obviously be another time interval that makes sense. E.g. "1 day", "3 weeks", "5 minutes", etc.
  • Any issues with app's own internal files are no longer logged as errors.
  • FUNCTIONAL ENHANCEMENTS:
  • Support for VSS with WS2012+ network shares:
  • What it says on the tin - the shadow copying can now be used when source location sits on a remote share IF the peer is running Windows Server 2012 or newer.
  • Support for copying encrypted files as raw blobs:
  • The app now has an option of copying NTFS-encrypted files as encrypted blobs. This option is Off by default because there are caveats.
  • You must remember that NTFS encryption uses keys that are linked to your local user account. You lose the account, you won't be able to decrypt the files. In particular meaning that you can't back up an NTFS-encrypted file to a USB key, take it to another computer and open it there. No key = no access, and the key is buried deep down in the guts
  • of NTFS control blocks of your local drive, encrypted with a master key derived from your account password.
  • Backing up onto anything but NTFS will not work.
  • Reading/writing encrypted files in raw works through so-called EFS API, which happens to be slower than reading/writing them in plaintext via regular file system API. In order to enable raw copying of encrypted files, use the following setting: conf.copying.use_raw_enc_copier 1, and the app will copy all files with "Encrypted" attributes through EFS API.
  • An option for running the app on lower priority:
  • Third option from the top in the Preferences, in the advanced mode. This is useful on both very busy and weak computers. Works really well to alleviate effects of a running backup on machine's responsiveness.
  • Improved email notifications:
  • The UI around email alerts has been reworked to separate alert-specific settings from general email delivery options. Post-backup and missed-run alerts are now configured separately. This rework also paves the way for adding SMART alerts once the SMART module is merged into the app.
  • Email delivery got a CC option. One thing to keep in mind that all copies are delivered through the SMTP session established for the To recipient. So a combination of "@gmail" for To and "@hotmail" for CC won't work, at least not out of the box.
  • It's now possible to specify TLS/SSL domain in the server certificate for secure connections. This is useful for the cases when domain name in the certificate is different from the server's domain in its MX record.
  • The FROM field in the SMTP envelope now defaults to the From from the alert configuration rather than to "[email protected]"
  • It is now possible to send an alert on job cancellation. This is controlled by the following INI setting: conf.alerts.post_backup.on_cancel 1
  • New async module to handle app's configuration files:
  • The app now has a dedicated module that handles all INI file writing.
  • This may not sound like much, but it's a very important thing to get right. The INI files need to be written out reliably and in a way that allows recovering from partial or incomplete file updates, for example due to the sudden power-off, bluescreens and such.
  • Previously, Bvckup 2 used conventional three-step update process that involved two copies of an INI file and a temporary "lock" file. This however was still prone to corruption in some cases, so as of R75 the app uses a simpler (read - dumber) approach.
  • It still writes two copies of each INI file, and it still renames an existing copy to a ".prev" file if there's one, but it now uses so-called write-through copying and moving functions. These effectively tell Windows to bypass file system caches and make sure to write things onto the physical media before reporting an OK.
  • However these functions take time, so they cannot be used directly from the UI or the engine code. Doing so will cause the app to stutter. As such there's now a small dedicated module which is tasked exclusively with writing config file to the disk, asynchronously.
  • Smaller, less verbose backup logs:
  • The app now logs less per-file information both on the first run (when creating backup copies) and on the subsequent runs (when updating).
  • ASSORTED CHANGES:
  • Speeded up copying of file attributes
  • Speeded up copying of empty files
  • The $Archive is re-scanned if the trim period is changed
  • Revised how “created” timestamp support is tested
  • Internal swap files are now compressed by default
  • Export settings” option is now visible in service mode
  • RESOLVED ISSUES:
  • Fixed an issue with the systray icon in W10 Preview builds
  • Fixed an issue with post-backup commands on failed runs
  • Fixed an issue with the archival of modified files
  • Fixed an issue with the “elapsed” environment variable
  • Worked around several issues with WebDAV locations (assorted sources)
  • Planning module can now handle 1M+ files per folder

New in Bvckup 2 2 Release 74.21 (Oct 21, 2015)

  • Resolved an issue with 12-month backups set for December - a fix for https://bvckup2.com/support/forum/topic/436/3807
  • Resolved an issue with .ini overrides for archive tags - this has to do with manually blanking conf.archive_deleted_tag not being sticky. That is when you set it to "", it would revert back to the default on the next backup configuration change.
  • Extended environment variable set to cover pre/post commands - 8 additional env. variables are now set up when pre/post commands are spawned and when email alerts are formatted. In particular,
  • BVCKUP_pre_command -- the actual pre command
  • BVCKUP_pre_command_status -- "executing", "executed", "timed out"
  • BVCKUP_pre_command_exit_code -- the exit code once executed
  • BVCKUP_pre_command_elapsed -- time taken to execute
  • Post command has the same set with BVCKUP_post_...

New in Bvckup 2 2 Release 74.19 (Sep 18, 2015)

  • A single very small change - when cloning security information (owner/group/DACL) of folders or *moved* files, the app wasn't requesting enough access rights from Windows. Oddly enough, Windows was OK with that for locations under its own control. but it did yield "access denied" when doing the same against a Synology NAS. No more, proper rights are requested now.
  • In other words, if you are (1) copying security info (2) *from* a Synology NAS, then this update is for you. Otherwise it's as optional as it gets, so it will take few days for show up as an in-app update notification.

New in Bvckup 2 2 Release 74.18 (Sep 18, 2015)

  • Resolved an issue with updating folder timestamps on QNAP NAS - the actual change was for the app to request FILE_READ/WRITE_ATTRIBUTES permissions when opening folders instead of GENERIC_READ/WRITE.
  • As they say - in theory there's no different between theory and practice, in practice through there is. So this is an example of that.
  • Resolved an issue with querying of *destination* file system information - prior to this release the app would look at the cache of the *source* filesys info when deciding if the destination one needs a refresh. That was a bit of apples to oranges logic to put it mildly.
  • Added an option for using so-called write-through disk writing mode. This a tentative workaround for this issue - https://bvckup2.com/support/forum/topic/661

New in Bvckup 2 2 Release 74 (Jun 6, 2015)

  • Run-time memory use is now capped:
  • The amount of memory the app now uses to run a backup does NOT depend on the size of said backup. Needless to say that this is extremely important change that means that Bvckup 2 is now formally capable of handling backups of arbitrary size - anything from a handful of files to millions of files. Behind the scenes the app uses a form of a swap file to keep things off RAM when it's not actively using them.
  • The Fine Print:
  • This change is linked to a major rework of several parts of the app that spanned nearly 3 months. In practical terms this means that there's an increased risk of edge cases, bugs and wrinkles slipping through the testing and ending up in the release. The risk is low, but still please keep an eye on anything odd and report to the support if spotted
  • Delta copying improvements:
  • Previously, delta copying was used for files of 2MB and larger.
  • With this release the threshold is raised to 32MB, but the delta copying is also used for files between 2 and 32MB that were modified less than 30 days ago. The idea, basically, is that delta copying now used for files that are either large or that change frequently.
  • The net effect of this change that the backups complete faster *and* that there's less state date stored in the backup configuration.
  • "Export configuration" option:
  • Just what it says on the label - an option to save app's entire configuration in a single .zip file, accessible from Menu / Help.
  • Restoring the configuration is a simple matter of extracting the contents of the zip file into %LocalAppData%\Bvckup2 folder, but just in case the exact instructions are included in the .zip file itself.
  • Smaller changes:
  • Source or destination location disappearing during the scan now correctly aborts the backup
  • It's now possible to suppress "Backup run was missed because the app wasn't running" notifications. This is done by setting "conf.report_missed_runs" to 0 in the backup's settings.ini. See FAQ for how to make this change properly.
  • Tentative workaround for log index files getting locked by the antivirus when the log is rotated.
  • It's now possible to force the app ignore specific drive letters (just as if they have no devices behind them). This is controlled by "drives_to_ignore" variable in bvckup2-engine.ini file, which is a bit mask of drives (bit 0 - drive A, bit 1 - drive B, etc.).
  • \Windows\System32\Microsoft\Protect\Recovery is now excluded by default
  • UI-to-service connection timeout is now configurable and the default was raised from 5 to 7 seconds. Because reasons.

New in Bvckup 2 2 Release 73 (Feb 13, 2015)

  • New - Lighter and faster revision of the logging subsystem:
  • This is the change in this release. Basically, the original version of the logging module was not very good. It worked, but it had certain issues that became especially noticeable in service mode
  • New - Completion time estimation for longer file copies:
  • It's now possible to toggle between completed %-age, elapsed time and estimated completion time when the app is copying large files. The next step will be to add completion time estimation for not just files, but entire backups. But on thing at a time.
  • New - Monthly backups:
  • It's now possible to schedule a backup to run on the N-th day of every M-th month.
  • New - Automatic software updates:
  • Existing update options were "Check for updates", "Remind me to check" and "I like to run outdated software" (paraphrasing). This release adds "Check and automatically update".
  • This is primarily meant for cases when you are installing the software for a less technical person and you don't want to task them with keeping up with the updates.
  • The option is hidden by default. In order to show it, hold down Control while opening the Preferences window.
  • Also, keep in mind that the update process is currently driven from the UI module. This means that if the app is running in a service mode and the UI is closed, the auto-updates will effectively be Off. Also, if the app is installed in C:\Program Files, there'll be an UAC prompt when the updater launches.
  • Resolved an issue with copying zero-sized files:
  • If a non-empty file got truncated to zero bytes between the Scanning and Copying phases, the engine would get stuck trying to copy it.
  • I actually really like this bug. In my 20+ years of writing code it's the first time I managed to produce a user-friendly infinite loop. It's like a hang, but you can ask it to quit and it will. Very polite.
  • The engine now keeps backups in the same order as the UI:
  • There are two copies of the backup job list - one is in the engine and another is in the UI. Prior to this release the app made no effort to keep jobs ordered the same way on both lists. This wasn't a big deal except for the case of launching all backups via "Backup everything" option from the systray menu - the app did run all the jobs, but not in UI's top-down order. This is now fixed.
  • The UI now exits silently when the engine service is stopped:
  • Previously, stopping bvckup2 service caused the UI to show "All's lost, the engine crashed, report this terrible news to the support" kind of message. Now it doesn't do that unless the engine actually crashes.
  • Pre/post-backup commands can now be launched via shell:
  • Previously, pre/post commands were launched with a low-level function by creating an OS process. This release adds an option to launch them via shell, just as if these command were typed into Windows "Run" dialog.
  • More formally, there are three launch options - "process", "shell" and "auto". Auto is the default and the way it works is as follows - it checks if the command specifies an existing file that ends with .bat. If it does, then it uses the "shell" method, otherwise it goes with the "process".
  • I will update the "Pre/post-commands" FAQ topic with the details on how to enable either of two other options in a bit.

New in Bvckup 2 2 Release 72 (Dec 23, 2014)

  • New - Multiple copying speed improvements:
  • This is a result of a couple of weeks worth of performance testing. Tests covered different common setups, including same-drive backups, different drive backups, backing up local to/from USB2, local and USB3, local and a network share over SMB1 and over SMB2, over gigabit links and over WiFi, with warm cache and with cold cache, etc.
  • The ultimate goal of testing was to determine optimal sizes of read and write requests, the total number of I/O buffers as well as to fine-tune the copying pipeline in general.
  • The app now takes into account both the type and relative disposition of the source and destination when selecting I/O buffering strategy. In particular, it is now aware of the version of SMB protocol used to access remote shares, understands locations residing on the same *physical* disk and includes special handling of USB drives
  • The app now does NOT explicitly flush the write cache upon completing the copying of a file *unless* destination is a removable device. Previously, it has always flushed the cache and it led to significant delays when backing up from the network to a local fixed drive. The flushing behavior is configurable via .ini and it can be overridden to be "flush always" or "flush never".
  • Threshold for delta copying a file is now 2 Megs instead of 128K from before. Meaning that files under 2MB are now always copied in full. Again, this is configurable via the .ini.
  • File that are copied in full no longer use staged copying if destination file doesn't yet exist. With staged copying, the file is first copied into a temporary file at destination, which is then renamed in place. As of R72 this is done only if destination file exists. Configurable via the .ini.
  • The app no longer uses the slow-start reading routine, whereby it used to first issue 1 read request, wait for it to complete, then issue 2 requests, then 3 and so up to the maximum number of I/O buffer. This was a homage to TCP/IP slow start. No idea why I thought it'd be a good idea in the disk I/O context. Not configurable via the .ini. Surprise.
  • With all things combined, the bulk throughput in both cold and warm cache cases is marginally better (5-10%) than that of robocopy, which
  • is pretty much a golden standard of I/O performance on Windows 8
  • and newer.
  • New - Added support for archiving past versions of modified files:
  • It is now possible to set the app to archive existing backup copy of a file before backing it up. In other words, the app will move file's backup copy to the archive and then re-copy the original in full to create new backup copy.
  • Obviously, this is a form of file versioning. The reason it voids warranty is that it can chew through available disk space *like that* if the archive trimming is off or if the backup is run to ofter or if modified files are really large, etc. Plenty of opportunities for the mess. Hence the warning.
  • I would strongly recommend to NOT use this option unless you absolutely have to.
  • In order to enable this feature, you will need to change "archive_modified" entry in backup's settings.ini file from "0" to "1".
  • You will also need to ensure that the Copying preference for the backup is set to "in full" (and not "delta") and the Deleting is set to "archive".
  • New - Added support for destintion scan filters:
  • Similarly to how a backup can be configured to exclude/include files and folders when scanning the source location, it is now possible to do the same when scanning the destination.
  • As of this release each backup now has a separate set of filters that is applied during the destination scan. By default the set is empty, so everything is included, just as before.
  • However you can now add a rule to exclude certain files or folders and it will ultimately make the app act as if these items don't exist.
  • This is obviously a *very* fertile ground for creating lots of peculiar issues. Please make sure you know what you are doing.
  • New - An option to suppress the "Waiting for device..." state:
  • It is now possible to tell the app to NOT monitor for the availability of a drive or a network share and just assume that they are readily available. This applies to real-time and periodic backups that would, by default, enter and remain in the "waiting for device..." state if either source or destination location is not presently available.
  • This is primarily intended for cases when src/dst device is in fact unavailable normally and instead getting mounted or mapped by the pre-backup command.
  • Smaller changes:
  • Clicking on an empty toolbar area to the right of Go/Stop button now deselects any selected backups, while Ctrl-clicking there selects them all.
  • The issue with very long file/folder names overlapping neighboring fields in the main UI list has been resolved.
  • Backup tiles can now be styled independently.
  • The versioning scheme has been extended to support interim maintenance releases. That is, there's now always one primary release (e.g. Release 72) that may be followed by one or more revisions to cover any required tweaks and bug fixes (e.g. Release 72 Revision 2). Revision information is now shown in the Help/About window when applicable.

New in Bvckup 2 2 Release 71 (Oct 29, 2014)

  • NEW FEATURES:
  • ADDED EMAIL ALERTS AND NOTIFICATIONS:
  • Alert conditions:
  • The app can now send an email when a backup completes a run, either with or without errors (configurable). It can also send an alert when backup misses a run or when a backup is cancelled by the user.
  • App-wide and backup-specific configuration:
  • Email content, Subject, From and To fields are app-wide settings. As is the preference for attaching the logs and parameters for talking to the mail server.
  • At the backup level it is possible to specify if an alert should be sent or not and whether it should be sent after each run or only when the run completes with errors - https://bvckup2.com/wip/r71-configure-alerts.gif
  • The "Configure" button in the above screenshot leads to an email alert configuration window that does the *app-wide* configuration. You will get a warning about this when appropriate.
  • Message configuration:
  • From, Subject and the email message itself are configurable, all initialized to the reasonable defaults
  • There are about 60 variables that are available for dynamically constructing these fields, covering the OS environment, app's properties (version, license, etc), backup config and the state of the last backup run. In the above screenshot, clicking on "Show variables" will expand the window with a full list of variables.
  • Incidentally, the same variables are now also made available to the pre/post-backup commands.
  • Mail server configuration:
  • When it comes to actually sending the alert, the app can do it in two ways.
  • It can take the To address, look up its mail server and talk to it directly
  • Alternatively, you can tell it to which mail server to connect and optionally provide credentials for logging into it
  • Direct delivery is the simplest to configure, but it will likely not work if you are to try it from a network address of a residential ISP. The reason for this is that it's a common way of distributing spam, so larger email providers refuse to talk to anyone from residential IP ranges. But do try it first. If it works - great!
  • Relayed delivery is when you are asking "your" server to take on delivering your email to whatever it needs to go. The app comes with a list of few dozen large providers (Gmail, Hotmail, Yahoo, etc), so it can help you configuring the host/port/security settings for them. But if in doubts, click on the "?" next to "How to send" and you'll get a quick guide on settings things up.
  • Once all set and good to go, click on "Send test email" to, unsurprisingly, send a test email
  • Logs:
  • The app also gives an option of attaching backup logs - either a full log from the last run or just the errors (in the context).
  • Logs larger than 4 Megs are trimmed at the bottom, but preserving at least 20 lines at the end. After that, logs larger than 128 KB are zipped.
  • 4 MB, 20 lines and 128 KB are configurable through an .ini edit.
  • Lastly:
  • If an email alert cannot be sent (due to machine being offline, for example), it is *not* queued, but discarded. If you need reliable delivery for these scenarios, you will need to do it through a post-backup command with a custom script.
  • In direct delivery mode, the app connects to port 25 and it expects STARTTLS support on server's end. It's possible to adjust both settings. You guessed it - "via an .ini edit, ask me how".
  • All in all, this worked out to be a remarkably deep rabbit hole of a feature. Most likely it will require a bit of TLC and tweaking, but it should also be pretty functional right out of the box.
  • ADDED REAL-TIME DEVICE TRACKING BY VOLUME LABELS:
  • Previously tracking by volume *was* supported, however changes to the volume labels weren't tracked. Meaning, that if you were to rename the drive, the app would remain oblivious to change. It also meant that the event of unlocking a BitLocker'd device was ignored by the app as well.
  • ADDED SUPPORT FOR DRIVES WITH BITLOCKER ENCRYPTION:
  • The app is now capable to recognizing locked BitLocker devices and it provides proper UI messaging around them.
  • ADDED AUTOMATIC NTFS COMPRESSION OF BACKUP LOGS:
  • A simpler changed, but with a good immediate effect - backup logs and their indecies now have NTFS compression enabled for them. They are highly compressible, so you should see their "space on disk" to be 20-30% of their raw size.
  • MULTIPLE IMPROVEMENTS TO THE BACKUP CONFIGURATION UI:
  • I am listing this as a new feature, so that if you are upgrading from an earlier version, you'd take notice. In particular, the Device Tracking configuration for a backup has been moved from the More Options panel and into a single "pushpin" icon embedded directly into the Source/Destination entry fields. To access the actual settings, just click on the icon. Also, the app will automatically enable device tracking when you enter a location on a *removable* device. The reclaimed space in More Options panel was given to the email notifications.
  • ISSUES RESOLVED:
  • Added special handling for Netgear Stora NAS -- yet another case of weird timestamp truncation.
  • Added special handling for FUSE volumes -- FUSE being "Filesystem in Userspace", which is a contraption used by some apps to implement file system functionality without needing to write any kernel code. In certain cases FUSE refuses (ha) to open a file for exclusive use and want to have at least some access sharing on a file enabled. Bvckup now recognizes this case and silently re-opens the file as per FUSE's expectations.
  • Added support for WIM reparse points -- these are mounted .wim containers. Apparently these are used in the wild. Go figure.
  • Resolved several issues with shadow copying support -- this is a fairly big deal. There are two unrelated changes.
  • First is that the logic for selecting optional VSS components was a bit too dumb and apparently it could've been improved. This has no quantifiable effect on an average setup, but it makes difference for the Windows Server installations.
  • Second was a change to how a snapshot is removed after the backup. Apparently, re-initializing VSS interface and disposing the snapshot through this secondary instance doesn't work in some cases, including Windows 2008 R2. Have no idea why, but the work around was to re-use the original VSS interface to do the disposal.
  • Changed handling of disappearing folders at source -- previously, if a folder at source location would go missing between the scanning and the copying, the app would abort the backup, erroneously thinking that the entire source device gone missing. This is fixed now.
  • OTHER CHANGES:
  • Added support for simulating a run without enabling a job
  • Added "start/stop all jobs" options to the systray menu -- this can be disabled through the .ini if you prefer an original two-item systray menu. Just ask me how.
  • Default archive folder name is now "$Archive (Bvckup 2)" -- this goes into effect for all newly created backups. All existing backups will continue using "$Archive of Deleted Items (Bvckup)".
  • Archive trimming is now enabled by default -- that is, the app will start items from the archive after 2 weeks of grace period.
  • Added slide-in context help to several UI dialogs. This is currently enabled for Device Tracking, Net Logon and Email Config dialogs. Looks for "More on this..." links and "?" icons to access the help.
  • Tray icon animation now can be suppressed -- as per request, via an .ini edit. Ask me how.
  • Declared app's support for Windows 10 -- simply added W10 to the app's manifest.
  • There are few more smaller change and bug fixes.

New in Bvckup 2 2 Release 70 (Aug 16, 2014)

  • New features:
  • Added support for configuring network share credentials
  • Added command-line control of the backups
  • Further reduced run-time memory usage -- reworked code a bit to reduce the size of an internal structure that holds per-file and per-folder information from 132 to 112 bytes. Not much in itself, but it quickly adds up to a good number when there's a lot of files
  • Issues resolved:
  • Fixed an issue with the network share monitoring logic - when the backup was enabled, the app wouldn't start monitoring *destination* network location, only the source one
  • Fixed an issue with the log synching in service mode - repeatedly opening and closing the UI when running in service mode could mess up UI's copy of the logs in certain cases
  • Fixed several smaller UI issues - in particular, the UI panicked when a backup type was changed from real-time to periodic in a certain way
  • Other changes:
  • It's now possible to force a backup of unmodified files
  • Start/finish times are now available to post-backup commands
  • In addition to existing BVCKUP_xxx environment variables, the app now also sets up BVCKUP_time_started, BVCKUP_time_finished and BVCKUP_time_taken variable to provide some timing information about a run.
  • Main window and log viewer are now stylable via .ini - it's now possible to adjust colors and certain metrics of the main list and the log viewer. I will be documenting this separately in a bit.
  • Windows is now asked to suppress external CRL checks - this has to do with checking digital signatures on app's own executable and on downloaded update packages. Bvckup now sets a flag that should - in theory - suppress any network activity that Windows' wintrust.dll may do on behalf of the app, but sometimes it works, sometimes it doesn't.

New in Bvckup 2 2 Release 69 (Jul 3, 2014)

  • New - Simulated runs:
  • Just as the name implies it's an option to run a backup without making any changes to destination. The app will execute the scanning phase, compile the backup plan and then dump it into the log instead of executing it.
  • New - Shadow copying improvements:
  • The app now recognizes optional VSS writers and involves them in a snapshot creation process.
  • VSS writers are the components of the shadow copying framework that are tasked with ensuring consistency of specific files in VSS snapshots. For example, when creating a snapshot, Windows would ask the MSSQL writer to flush any pending database changes in a way that would make on-disk copy of the database self-consistent.
  • New - Overrides for default backup configuration:
  • This is an advanced configuration option for those who'd like to tweak the defaults of new backup configurations.
  • The way it works is that you place a copy of settings.ini file from any existing backup into bvckup2\ui directory under the name of backup-template.ini and the UI will use it to initialize a new backup job when it's showing the New Backup dialog.
  • Fixed:
  • Resolved several smaller UI issues, like thin progress bars spanning a bit too wide and such.
  • Fixed an issue with the engine not logging the context of certain failure, e.g. it wasn't indicating whether a "locked file" error was referring to a file at source or at destination.
  • Other - Symlinks in file browser:
  • The file/folder browsing widget in Backup What window now understands and shows symlinks *when backup is configured to follow them* in More Options section.
  • Other - New default:
  • Periodic 6-hour backup is a new default, a change from real-time in all previous releases.
  • Other - Matching files by size:
  • This is an advanced option, tread with care.
  • In addition to matching by attributes and name, manual filters now support matching by a file size range. To make use of this functionality you will need to look into settings.ini of a backup and find lines that start with conf.filters.2.manual. These are your manual filters as seen in Backup What window and they use the following format: conf.filters.2.manual
  • 0 is for "exclude", 1 is for "include". Mask and bits are 32-bit hex numbers with values from [1]. The app takes an attribute of a file, ANDs it with mask, the compares with bits and looks for an exact match... but I digress.
  • In order to match file by size the entry needs to be in an extended format: conf.filters.2.manual
  • Note the use of +/- instead of 1/0. For example, the following rule - conf.filters.2.manual - 00000010 00000000 1024 2048 *.tmp will exclude *.tmp files that are between 1KB and 2KB inclusively.

New in Bvckup 2 2 Release 68 (May 23, 2014)

  • Changes:
  • Re-added support for 64-bit versions of XP and Windows 2003. This involved rebuilding the program with earlier version of the Microsoft toolset and forfeiting some of the newer features. However latter worked out to be not a big deal as the only useful new feature was static analysis tool and it can still be used by temporarily switching between the toolsets
  • Fixes:
  • Resolved a couple of issues with editing Periodic backup settings. In particular, changes to the backup interval were not observed until the next run or until backup was disabled and re-enabled. This is fixed now
  • dded an isolation wrapper around Windows' native "Select Folder" dialog as this beaut apparently can crash on a whim on some setups

New in Bvckup 2 2 Release 67 (May 23, 2014)

  • Changes:
  • For production version this release adds trialing, licensing and other scaffolding needed to transit from a free to a paid app. For corresponding beta release there are not feature changes.
  • Fixes:
  • Fixed an issue with log viewer stealing input focus - this is a fallout from an earlier change whereby clicking on "Xx errors" in main window would automatically set focus to the log viewer pane. The issue was that the pane will keep stealing the focus every second afterwards.
  • Fixed an issue with switching to periodic backup - when switching a backup from real-time to periodic mode *and* if there's a run pending due to file system changes, the app would overreact and shutdown. This was due to an invalid logic in the backup reconfiguration code. It tripped, correctly, a self-consistency check.
  • Fixed a rare on-exit issue - in certain cases the log viewer could get its internal state messed up when the app was existing.
  • Added a check to the installer to see if it's being run on XP/64bit or 2003/64bit and then complain about it. There is a workaround for installing bvckup on these platforms, but you will need to get in touch with me over the email to get it. The reason being is that I don't have an access to either of these OS combinations, so I cannot properly support them.

New in Bvckup 2 2 Beta 66 (May 14, 2014)

  • New features:
  • Added full High DPI support - the app now should look substantially better when running in High DPI (zoomed-in) modes on newer Windows. In particular, smaller icons like the expand/collapse buttons in the log viewer and file/folder icons in the content filter - all these now come in several sizes to accommodate different DPI modes.
  • Added network path monitoring for mapped drives - in addition to monitoring the availability of explicit network paths (\\server\share) the app now also monitors paths behind mapped drives. Specifically, the backup won't be run until the app ensures that the remote path is accessible and it will keep backup in "waiting for the device" state until then.
  • Environment variables in pre-/post-backup commands are now expanded in the app if they are present. For example, the "explorer.exe %BVCKUP_src%" command will actually be spawned as "explorer.exe C:\Source\Foo". If you don't know what this means, then you most likely don't need this
  • Issues resolved:
  • Reworked backup scheduling module -- this has to do with how backups are marked up for execution internally in the app.
  • Previously, the engine was going through the list of backups several times a second and checked if any of the backups were ready for execution - be it due to file system changes or because it was their scheduled time to go. This was clumsy and it caused the UI to try and mimic engine's behavior in order to display what the engine was thinking.
  • Starting with this version the engine tags each backup with intended run time and a separate part simply runs backups that are due. This run time is re-calculated only when something interesting happens - the file system changes, devices arrive or depart or the backup config changes. All in all, it is a simpler, less hectic approach *and* it also helps UI to know *exactly* when each backup is due.
  • Fixed timestamp issue with Synology DiskStation - this is another take on Synology funny way of trimming each timestamp to .9999999th second.
  • Fixed a small UI resource leak - this is related to XP installs and to anyone running with any 3rd party themeing software. There was a small handle leak in the main window re-painting code, something that Windows natively absorbs, so it only manifested on older and custom systems.
  • Smaller UI tweaks and fixes
  • Improved support for post-resume backup delays - some Windows boxes appear to be entering Suspended mode without properly notifying apps, so this fix tries to catch these cases and still service post-resume delays as required.
  • Other changes:
  • Switched to a newer version of the compiler - upgraded to Visual Studio 2013 and as any change in the build toolset this may cause all sorts of funny issues. On the plus side, it does appear to be producing smaller executables.
  • Configuration folders can now be redirected with an .ini - whenever the app is reading an .ini file now, it will first look for a file called redirect.ini. If it's present, it will read a single line from it and treat it as a new path for the .ini. Repeat and rinse.
  • In other words, you can now move app's config from %LocalAppData%\Bvckup2 to, say, X:\Foo\Bar by creating %LocalAppData%\Bvckup2\redirect.ini and putting "%LocalAppData%\Bvckup2" in it.
  • Empty file names are now detected and reported - this is an interesting one. I got a couple of reports of the app crapping out because it runs into a folder with an empty name. It would basically be enumerating items in some directory and one of items will have a zero-length name. This should not be happening, but it did.
  • After thinking about this for a while I believe the only explanation for this is a presence of a rootkit in the box. While you cannot create a file with an ASCII zero in the middle using any normal app, it is still possible to do that via NtCreateFile API. In fact, you can create a file named \0abcdf (i.e. starting with character with a code of 0) and it will be created. It will also appear to any regular app as a file with an empty and most if not all of them will skip over such file. Bvckup is a pedant, so it didn't and raised fuss instead.
  • In any case, this is a known technique for creating concealed folders and files and it is *typically* used by rootkits and some such. It is also used by some DRM software. Long story short, bvckup now treats such zero-named files as a possibility, but it logs a large fat warning.
  • Restyled the delta copying progress bar - that's just my favorite past time. I change its look and feel every few releases

New in Bvckup 2 2 Beta 65 (Mar 24, 2014)

  • Issues resolved:
  • Internal VSS faults are now isolated from the app.
  • This has to do with VSS sometimes crashing somewhere in the guts of Windows. This release puts a better isolation around VSS calls and contains such unfortunate failures in a graceful manner.
  • More specifically, this was due to a crash report that involved IsVolumeSupported() function from IVssBackupComponents.
  • Fixed an issue with running installer from a network share.
  • When installing *from* a mapped drive or network location, this location may become inaccessible due to UAC when the installer restarts with full admin rights. To work around this, the installer now copies itself into a temporary location on a local drive and restarts that copy instead of the original.
  • Fixed a log viewer issue specific to Australia, NZ and Hawaii
  • Log viewer would always complain that log files are invalid if you were in a timezone that is 10 or more hours away from Greenwich. Most notably this includes Eastern part of Australia, New Zealand and (going the other way) Hawaii.
  • Fixed smaller UI issues
  • Other changes:
  • Maximum file size check is suppressed for network shares
  • Boot delay is now observed for periodic backups as well
  • In service mode, the app detects if its config is inaccessible
  • If you are to switch app into service mode and then change the user account for the service, it would, previously, start and run as usual *even if* that service account had no access to %ProgramData%\Bvckup2. This caused the UI launch with an empty job list, no license and then silently fail when saving newly added jobs. In other words, it wasn't pretty.
  • Now it will loudly complain that the service config directory is inaccessible and disable the Add Backup option.
  • Mapped drives are now resuscitated only on launch
  • This is related to a little convenience service that bvckup provides. When the machine is rebooted and you log in, mapped drives may remain in a so-called "disconnected" state until you explicitly click on them in Windows Explorer. Even if the remote side *is* readily accessible. Apparently this was Vista change meant for speeding up the login process.
  • The issue here is that disconnected mapped drives do NOT appear on the list of drives as seen by applications. However it is possible for an app to understand that particular drive letter is a such drive and then prod it to life. This is what Bvckup was doing since the early betas.
  • The change in this release is that it now prods each drive only once, while previously it was prodding them every 30 seconds until the end of time.
  • Having multiple licenses is now supported
  • There are some rare cases when the Installation ID as recorded in the license file flip-flops between two values. This has to do with some sort of timing issue in BIOS whereby some of SMBIOS information is not always available upon app's launch.
  • For these cases the app now keeps a license per ID and so it doesn't require a license re-activation on each ID flip-flop.
  • Improved resilience to configuration storage failures
  • Backup settings are stored in a file called settings.ini. Previously, when bvckup was saving these INIs, it was doing a three-phase transactional update using two files - settings.ini and settings.ini.copy. This always maintains at least one .ini file valid at all times and so it is always possible to recover from .ini corruption should the app crash halfway through the save.
  • This did not however protect against aggressive write caching even though bvckup went out of its way to write all changes through to the physical media. Specifically, both INIs could end up empty if the system bluescreened shortly after an update.
  • This release adds a backup of .ini files, so in addition to settings.ini and settings.ini.copy there's now also settings.ini.prev file that contains the last-known good version of the settings. If primary config is invalid, the app will automatically revert to using the backup ini (and add a warning to that effect to the log).

New in Bvckup 2 2 Beta 64 (Mar 17, 2014)

  • Issues fixed:
  • Device and power events are now tracked in service mode - this covers handling of device removal and insertion, jobs stuck in "waiting for the device" state and the set up of the post-resume quiet period, when the computer is awaken from sleep or hibernation
  • Enabling periodic backup now doesn't start it right away - that's unless it is set to run as soon as possible *and* it has missed a run
  • Fixed an issue with delta copier and partially locked files - two issues there actually, both were leading up to a self-inflicted app shutdowns. One related to delta copier running into a first locked block in a file that it was *updating* and the second was when the copier failed to write out first modified block in a file
  • Fixed two issues with the log viewer - one was with "Clear Log" command when the log was just freshly rotated and its live portion had no content in it. The second was with scrolling to the last error logic, when "failed" status was clicked in the main list
  • Other:
  • Recycler and $Recycle.bin are now excluded by default
  • Ctrl-N now opens New Backup window
  • Humanized error message for ERROR_WRITE_PROTECTED - that's primarily for write-locked SIM cards
  • New About box

New in Bvckup 2 2 Beta 63 (Mar 17, 2014)

  • Issues fixed:
  • Resolved an issue with back to back removable device events brings Bvckup down. If you were to plug and unplug a removable device quickly (within 5 seconds), the app would panic and shutdown
  • Ironically, this was due to a bug in a *self-consistency check*. Imagine that
  • Improved handling of intermittent network errors
  • Other changes:
  • Ctrl-Stop now cancels and disables all selected backups
  • Holding Ctrl now adds "!" to the Stop button on hover
  • Added a humanized form for ERROR_NOT_READY errors

New in Bvckup 2 2 Beta 62 (Mar 17, 2014)

  • Improved support for network drives and locations:
  • First is that network paths behind mapped network drives are now monitored if/when the drive becomes unavailable
  • Second is a fix for the following scenario. Say, you set backup to use \\server\share\foo and this share requires username/password on the first access. Then, say, you have accessed the share, entered the password and it is now available in Windows Explorer. Next, restart Bvckup with full admin rights. Guess what? The share is inaccessible. See http://bvckup2.com/beta/#!/topic/281 for original report
  • Now, follow the hands. Grab just a username under which the share is accessible under regular user account and then issue "net use \\server\share /user:" from Bvckup running as full admin. No password, just the username. Poof. The share is now accessible. It makes no sense, but it works and Bvckup now does this for you, behind the scenes
  • Third, there are changes to better handle disappearing/disconnecting network locations when they are used as a source for real-time backups
  • Issues resolved:
  • Fixed support for case-sensitive file systems
  • Fixed support for NTFS de-duplication reparse points
  • Fixed file ownership issues when switching app's mode
  • When Bvckup was switched back from service to the app mode, it would under certain circumstances re-copy its /engine subfolder and that would place all its contents under the ownership of Administrator account and make it inaccessible to the app *if* it wasn't running with full admin rights. All sorts of interesting events followed, including a crash (fixed separately).
  • Fixed "remind to check for updates" option
  • This was just plain broken. Now it should work as designed.
  • Fixed timestamp issue with Synology DiskStation
  • Fixed an issue with shadow copying "as needed" option
  • Added provisional workaround for device fingerprints not being always available.
  • I cannot reproduce this issue locally, but based on "field" reports the issue can typically be solved by restarting Bvckup. This likely means that there's a delay after device is reported as available by Windows and it is being accessible in way needed for computing the fingerprint. So the workaround is that Bvckup will now re-query device fingerprint in 5 seconds after a new device is indicated by Windows.
  • Other changes:
  • Added support for Window 8.1 per-monitor DPI mode:
  • Apparently Windows 8.1 implemented something called per-monitor DPI, meaning that if you have an average monitor and a High DPI one, then W8.1 will run them at different DPI. If an app doesn't indicate that it is aware of this awesomeness, W8.1 will blur the hell out of it on a High DPI monitor.
  • ServiceConfigPath registry tweak is again supported
  • If you don't know what this is, you probably don't need it
  • Systray "minimize" now always minimizes to systray
  • Missed backups are now again flagged on launch
  • Backups with non-critical errors can now too be flagged:
  • This is an .ini only option and it has to do with what kinds of errors are treated by Bvckup as "critical". By default, only backup-level errors are considered critical - i.e. those that either prevent backup from starting or those that abort it. However, with this change it is now possible to have file-level errors to be treated as critical so that they too would trigger a systray blink and notification.
  • In order to enable this behavior exit Bvckup, add the following line to %LocalAppData%\Bvckup2\ui\bvckup2-ui.ini, save it and then start Bvckup again.

New in Bvckup 2 2 Beta 61 (Mar 17, 2014)

  • Fixed an issue with Shadow Copying not working on XP installations *after an update from earlier version.
  • This had to do with an XP-specific DLL that Bvckup2 uses to access VSS service on XP. It is embedded into bvckup2.exe and extracted as needed. Beta 60 included a new version of this DLL, but the app didn't extract it as there was an existing (older) version in place. A version that it couldn't actually use ... hence no VSS on XP after an upgrade to Beta 60.
  • Fixed an issue with destination snapshot getting discarded if a destination network location is unavailable. This was just a flaw in the backup logic.
  • Fixed a scrollbar drawing issue on XP.
  • Changed Ctrl-W to act like Alt-F4 rather than like File/Exit.

New in Bvckup 2 2 Beta 60 (Feb 18, 2014)

  • Significantly reduced run-time memory use
  • Added support for monitoring of the network locations
  • Multiple UI enhancements
  • Assorted fixes

New in Bvckup 2 1.0.1.401 (Oct 15, 2010)

  • Added support for Volume Shadow Copying on 32-bit versions of Windows
  • Added an option for running Bvckup with full administrator privileges on Vista+
  • Added 48x48 application icons for Vista+
  • Added support for overriding various built-in settings via bvckup-override.cfg
  • Added a "Follow Bvckup" notification for active users
  • Modified installer and uninstaller not to trigger UAC dialog on Vista+
  • Modified uninstaller to prompt for removal of all Bvckup configuration data
  • Modified installer to use "Program Files (x86)" folder on 64 bit Windows
  • Modified logging to start each new log file with an UTF-8 marker
  • Multiple small UI changes
  • Resolved an issue with erroneous trimming of disk paths
  • Resolved an issue with long file paths not being properly stored between application runs
  • Resolved an issue with logging non-ASCII messages
  • Resolved an issue with exclusion filters
  • Resolved an issue with the installer erroneously failing the update in some cases
  • Resolved an issue with not failing to create destination directory at the volume root level

New in Bvckup 2 1.0.0.359 Beta (Aug 6, 2010)

  • Resolved an issue with copying empty folders (details)
  • Changed the backup engine to not run any jobs in the first minute after Windows' startup

New in Bvckup 2 1.0.0.355 (Mar 23, 2010)

  • Resolved an issue with not being able to get folder attributes or timestamps in certain cases
  • Switched copying speed estimator to a linear regression algorithm

New in Bvckup 2 1.0.0.353 (Mar 23, 2010)

  • Modified "Copy all files every time" mode to re-create destination subdirectories if they go missing between the backups
  • Fixed an issue with cloning folder timestamps
  • Fixed an issue with automatic updates in .349
  • Increased a retry pause after a backup failure from 30 seconds to 1 minute

New in Bvckup 2 1.0.0.349 (Mar 17, 2010)

  • Fixed an issue with delta copying erroneously padding destination file with zeroes in some cases (details)
  • Added code to perform a complete backup upon upgrading from an earlier version
  • Added support for automatic .exe updates in cases when the program is used without being installed first (details)
  • Added code to clone folder attributes similarly to how it's done for the files
  • Changed "Completed backup in ..." message in the log to state the backup interval in hours/minutes/seconds
  • Changed default backup configuration to not skip creating the empty folders
  • Applied a number of cosmetic UI fixes

New in Bvckup 2 1.0.0.347 (Mar 15, 2010)

  • Fixed support for very long file and path names
  • Added an option for not deleting any files at the destination

New in Bvckup 2 1.0.0.331 (Nov 16, 2009)

  • Added support for pausing and resuming backups (details)
  • Sped up scanning phase
  • Fixed problem reading saved backup state on program start
  • Changed default backup thread to run at Idle priority
  • Fixed system tray menu not hiding itself in some cases
  • Changed the way long paths are displayed in Info panel

New in Bvckup 2 1.0.0.326 (Nov 11, 2009)

  • Fixed a serious, but rare issue with version 1.0.0.325

New in Bvckup 2 1.0.0.325 (Nov 9, 2009)

  • Resolved an issue with delta copying of extremely large files
  • Increased delta copying speed by additional 10-15% and reworked its algorithm to run with a smaller memory footprint
  • Fixed an issue with inaccurate copying counters in a presence of NTFS streams in a file
  • Changed the layout of the Filters dialog and applied other small changes to the user interface as per these comments

New in Bvckup 2 1.0.0.317 Beta (Oct 21, 2009)

  • Modified delta-copying algorithm to detect changes to the destination files and to automatically fall back to the full copying
  • Added average copying speed indicator (details)
  • Modified the appearance of a progress bar (details)
  • Fixed a problem with "detailed logging" setting not being correctly preserved in some cases

New in Bvckup 2 1.0.0.245 Beta (Jul 21, 2009)

  • Reworked backup properties window for size and clarity
  • Modified the schedule of software update checks to even out the load on the update server
  • Added a warning for using real-time monitoring for backing up an entire hard drive