IncBackup documentation

OVERVIEW
This is an application for backing up files between harddisks/network drives.
Intentionally, there is no compression or proprietarary storage formats used.
File-per-file is copied (with directory structure) from source to target.
This way the risk of loosing data in a local network will be reduced considerably.
Most common causes for loss are application/human errors and disk failures.
By copying data to another disk/pc, most restores are fast and easy.
The price of a new disk only for backup purposes is generally lower these days than a specialized backup solution. Combine this with occational CDR/DVDR copies and user got pretty good safety from loosing data. (of course already being protected with the common AntiVirus, Firewall, AntiSpyware etc. - these are not an effort.)

CONSIDERATIONS
Several of the manual features could have been changed to full automation, but was not for now.
These 'manual features' are
(1) refreshing file sizes per folder in listview (*1)
and
(2) cleaning redundant files and folders from the backupset. (*2)

*1) There is added auto-resizing for actions backup/setacrchiveflags/removeachiveflags/cleanupload since these actions have to check all files in source anyway.
*2) User is asked after backup if these cleanups should be performed, and will be given detailed descriptions/lists of the operation with confirmation along the way.

Some would perhaps even call these manual features 'defects' in lack of knowledge of why this app behave like this. Much have been done to increase speed, the general thought is backing up thousands of files that sums up to many gigabyte of data over a local network.
- And doing this in a few seconds.. :)
Consider this and that copying 10GB over a 100mbit local network usually takes hours.
Just the process of analyzing these thousands of files 3-4 times per operation could take minutes.
In those minutes there are not few that would think the app have malfunctioned/etc.
That is why these less critical tasks - (1)refresh and (2)clean - is semi-manual for now.
Ex: I tested auto-refresh-all on app startup for 5GB over 100mbit local network. Guess what, app startup took half a minute....

BACKUP MODES
Modes include full or incremental backup, the latter the really beneficial mode for speed.

Incremental backup means that only files that have changed since last backup is re-copied.
Finding these files is easy. Each file has got some attributes (also called flags), like normal/hidden/readonly and archive.
When a file is created or changed, the archive attribute is set to 'on'.
When a backup application has taken its copy, the archive attribute is set to 'off'.
By checking all files and only copying the files set for 'archiving' an incremental backup is done.

A nice feature for better organization of the backups are the option to include source drive letter in the root of the backup. This option is mandatory, because it is not possible to reverse engineer the source drive letter from the backup unless the drive letter is recorded. Also, without this there could be mixups if one backed up for instance both C:\Data and D:\Data to E:\Backup(\Data!).
Backing up to E:\C\Data and E:\D\Data is much better organization.
Ex: [source] c:\test\subdir\tryfile.doc
[target] d:\backup
[backup] d:\backup\C\test\subdir\tryfile.doc

This application defaults to overwrite mode on backup. If a previous backup of a file exist, it will be overwritten with new one. The same rule apply to restore, all backup files for selected folders are restored to source with overwrite mode.

FILE SIZES
When adding a folder to the list in this app, the sizes for all files/archives is recorded to a xml file and displayed in listview.
Sizes are only updated when user clicks 'refresh', else they are just loaded from xml file (*).
Functionality to manually set/remove archive attributes exist.
For setarchiveflag, size archives is just set equal to full size after the file operations.
For removearchiveflag, size archives is just set to zero after the file operations.
Datetime is recorded and displayed for last time a folder was refreshed for sizes.
*) There is added auto-resizing for actions backup/setacrchiveflags/removeachiveflags/cleanupload since these actions have to check all files in source anyway.

ACTIONS AND PROGRESS
"Actions" always apply only to the checked folders in listview.
These actions include backup/setarchiveflag/removearchiveflag/refreshsizes/cleaning.
Mentioned actions also feature progress indication visually + bytecount + foldername being processed.
Datetime is recorded and displayed for last backup per folder.

CLEANING FILES
An important feature that for now is semi-manual, is cleaning.
The reason there is need for cleanups, is that old backups on target are preserved until all backup is removed and a new full backup is performed.

Ex: Say there is 2 files A and B in source folder, backed up to target.
File B is renamed C. After next backup there is file A,B and C on target.
File B on target must be deleted, else there will be a mess after a restore.
(The same thing happens if file B is deleted from source after being backed up.)

The reason cleaning is not implemented automatically after each backup,
is because it is time consuming. For now these steps is only done after asking user, giving detailed descriptions/lists along the way.

CLEANING FOLDERS
Cleaning also include deleting empty folders on target, these are usually a result of the process described above for cleaning files from target.

CLEANING PROGRESS
Progress for cleaning is done twice on the 'all' size.
Only progress for deleting empty target folders is stating the foldernames being analyzed.

CLEANING BACKUPSET
When user remove a folder from backupset, question to also delete the backup of that folder is asked.
There could be various reasons to remove a folder from the backupset.
Folder could be removed/renamed from source or is not important any longer.
When this happens one usually also want to remove the previous backup of that folder.

GETTING UPDATED
One would be surprised to see how much static data there is in a editable storage that has to be critically available on a daily basis. Run a full refresh for a few minutes to see what folders got changed data, then only select those folders with changes (or critical changes), and do an incremental backup for those. In many cases the actual backing up of those files would be very fast.

IMPORTANT
Do test all the features of this backup application on non-important data before using it.
Read the documentation again and be sure you fully understand how it works.
The author of this application can not be held responsible for any loss of data or other damage caused by use/misuse/misconception regarding this application.

FUTURE PLANS
Check back for possible future updates.
I have one feature in mind for a future update, that is, analyzing source and target to see if files exist that are newer than backupset and for different reasons have skipped archiving.
Two reasons, software glitches and evil people. An archive flag can easily be reset.