Tree inventory tool: a tree inventory examines the
contents of a tree and distinguishes "important" files
from "discardable" files. For example, if the tree is a
C program, the ".c" and ".h" files are important but the
".o" files and Emacs back-up files ("*~") are "discardable".
The inventory tool also assigns a logical ID to files such
that that ID is independent of the file name. If you
rename "foo.c" to be "bar.c", the inventory tool should
say before hand that "foo.c" has logical identity X and,
after, that "bar.c" now has logical identity X.
There should be flexible ways for a user to assign
logical identities to files.
Directories, symbolic links, and special files should
be able to have logical identities.