
This is the include/exclude list, which controls which files are included
and which files are excluded from backups. If the first four characters on a
line are 'inc ', then the rest of the line is an include pattern. If the
first four characters on a line are 'exc ', then the rest of the line is an
exclude pattern. Anything else is a comment. The patterns are perl patterns,
which are not like sh patterns, but are similar to grep patterns and version
8 regular expressions. For more information see the man page for perlre (run
the command 'man perlre').

Patterns are checked against the full name of each file, including the path,
but not including the initial '/'.

If a file is included because of one pattern, and excluded because of
another, then the last pattern controls whether the file is included or
excluded. You can think of this as first the general rules, then the
specific rules; or first the rules then the exceptions; or you can think of
going through the list from top to bottom, and the last match controls
whether or not the file is included or excluded; or you can think of it as
going through the list from bottom to top, and and the first match controls
whether the file is included or excluded.

If two patterns will never match the same file, or are both include or both
exclude patterns, then it does not matter which one is listed first. But you
can make Paranoid Backup a few nanoseconds faster by putting the pattern
which matches less frequently first.

It should be safe to change this file between backups.

If you exclude a file, and then the file changes, and then you do some
backups, and then you include the file, but the file does not change again;
then the file will be backed up next backup, because it will be different
from the information in the old virtual restore list.

If you include a file, and do some backups, and then exclude the file; then
the file will be excluded from future backups, but the file will not be
removed from the old control lists; you will probably want to manually
remove the file from the old control lists.


include everything
inc .

exclude /c, which is a temporary file I use as a clipboard
exc ^c$

exclude /.journal, the journal created when we convert an ext2 filesystem
to an ext3 filesystem.
exc ^.journal$

exclude /.bash_history
exc ^.bash_history$

exclude various files in /etc. ld.so.cache does not need to be backed up
because it can be recreated by ldconfig. mtab is deleted and recreated every
time the computer boots.
exc ^etc\/ioctl\.save$
exc ^etc\/ld\.so\.cache$
exc ^etc\/mtab$
exc ^etc\/psdevtab$
exc ^etc\/rmtab$
exc ^etc\/wtmplock$

exclude linux boot files, which are backed up with configuration files
exc ^dos\/os\/linux\/24

exclude image.* files on the dos partition; these are copies of the FAT;
they are meaningless after a restore because files are not likely to be
restored to the exact same places on the disk surface; thus after a restore
the FAT will be different.
exc ^dos\/image\.
exc ^dos\/treeinfo\.

exclude files left by program crashes and forced shutdowns
exc (^|\/)core$
exc (^|\/)dead\.letter$
exc (^|\/)DEADJOE$

exclude files named 'output' in any directory
exc (^|\/)output$

Linux changes the owner of /dev/ttys when someone logs in, and changes the
owner back when someone logs out (so that the user will have permission to
read/write the terminal). But there is no need to backup /dev/ttys just
because the owner changed. But gnome changes the owners of many devices
when someone starts gnome; if we want to exclude all those devices also,
then it is easier to exclude dev in the directory include excludes.
#exc ^dev\/tty[1234567890]
#exc ^dev\/vcs
exclude various sockets
#exc ^dev\/gpmctl$


exclude the paranoid backup new files lists
exc ^root\/Paranoidbackup\/.*\/new_excluded_files\.

exclude the paranoid backup control lists and virtual restore list because
they are included in the control files backup
exc ^root\/Paranoidbackup\/.*\/control\.
exc ^root\/Paranoidbackup\/.*\/virtual_restore_list

exclude xwindows fonts data files
exc (^|\/)fonts.dir$
exc (^|\/)encodings.dir$

Many programs create user configuration files. Most of these
user configuration files do not need to be backed up.
Many are never changed from the default settings, and can be recreated with
the default settings at any time. Others save unimportant data like most
recent window size, last file opened, etc. We could list the
original versions of these files with the operating system files, then
paranoid backup would only back them up if they changed. However, paranoid
backup cannot tell which user configuration files contain important
data and which contain unimportant data. Also, some programs,
especially kde and gnome, change the dates
of their configuration files every time they run, which makes paranoid
backup think the files have changed, even though the contents of the files
have not changed. So I exclude everything which begins with '.'.
Many of these are directories, and it would be more efficient to exclude
user configuration directories with the directory excludes. But
by excluding user configuration directories here, I can then exclude
specific files from user configuration directories below.
The real problem is that many programs behave badly.
User configuration files should only contain data which is different
from the default configuration data. Programs should not automatically
create user configuration files unless the user has made changes
from the default configuration.

exc ^home\/.*\/\.
exc ^home\/.*\/[Mm]ail(\/|$)
exc ^home\/.*\/Desktop(\/|$)
exc ^home\/.*\/nsmail(\/|$)
exc ^home\/.*\/office52(\/|$)
exc ^root\/\.
exc ^root\/[Mm]ail(\/|$)
exc ^root\/Desktop(\/|$)
exc ^root\/nsmail(\/|$)
exc ^root\/office52(\/|$)

inc \/.bash_logout$
inc \/.bash_profile$
inc \/.bashrc$
inc \/.k5login$
inc \/.lynxrc$
inc \/.netrc$
inc \/.remote_email_accounts$
inc \/.rhosts$
inc \/.screenrc$

mozilla proxy preferences and bookmarks
inc \/\.mozilla\/default\/.*\/prefs.js
inc \/\.mozilla\/default\/.*\/bookmarks.html

gnome favorites menu
#inc \/\.gnome\/apps(\/|$)

gnome balsa configuration
inc \/\.gnome\/balsa$
inc \/\.gnome_private\/balsa$

kde kmail configuration
inc \/\.kde\/share\/config\/kmailrc$
kde kmail address book
inc \/\.kde\/share\/apps\/kab\/addressbook\.kab

include directory .wine, because wine does not automatically
recreate the wine configuration files unless directory .wine already exists
inc \/\.wine$
wine configuration file
#inc \/\.wine\/config$
wine font data, which does not need to be backed up because
it is automatically recreated as needed
#exc \/\.wine\/cachedmetrics
next is wine registry data
#inc \/\.wine\/.*\.reg$


exclude rbcomm telnets log files
exc ^dos\/k\/rbcomm\/telnets\/l.*\.txt$
exclude compiled rbcomm macro files
exc (^|\/)rbcomm\/.*\.rbm$

exclude files ending with '.dontbackup' '.bak', '.tmp', or '.swp'
exc \.(dontbackup|bak|tmp|swp)$

exclude files ending with '~', because they are probably backup copies
of other files.
exc ~$
