zaxebo1 / tagfilesystem

Automatically exported from code.google.com/p/tagfilesystem
0 stars 0 forks source link
        Tag File System

Copyright: never think about that.

Bugfix: When creating new file, '/' will be a tag in file. TagDB.add_file_tags can not deal with [] tags.

Readdir support sub-tags. So that 'ls' can list directories.

Install: This filesystem requires the followings: Python 2.6 FUSE-2 library Python-fuse library Python xattr package if you want to use lstags.py command Better in a Linux box Python version < 2.6 is not supported. Python 3000 is not tested yet. If you insist, try convert the 2.6 code to 3.0.

To Mount:

Firstly some issues:
Tagfs needs a back-store directory to save its meta data and the actual
files. Operations under the mounting point directory are actually 
translated into tagfs actions and performed in the files under back-store
directory.

It is better that the back-store directory is empty and if some errors 
occur, remove the .tagfs_db.meta file in the back-store.

For most file operations, tagfs just mirror the underlying filesystem
APIs. The chief difference is the path-lookup which is based on tag query
in tagfs. Each directory in a path is considered to be a tag, the order
is irrelevant. So 'utah/picture/by-me/' refers to files with tags: picture,
utah and by-me.

Now the steps:  
Download the sources from GoogleCode trunk.
In the up-most dir which contains cmd and tagfs sub-dirs, 
run: ./tagfs/TagFS.py -o root=<the back store directory> <mount point>

The tagfs will use <the back store directory> to store the meta data and 
files. You can do things within <mount point> to have fun.
If you want to monitor the status, use -d option when running TagFs.py
to enable debug output.
The log is in /tmp/tagfs.log 

Command: cmd/lstags.py: lstags.py if is a file: list all tags of that file, in a path format if is a dir(or we say 'tags' in tagfs): list the union of all of all tags that are attached by files under , but the tags in path are not listed. So it looks like 'sub-tags' under , however, in fact there is not hierarchy relationship between tags.

    For convenience, you may want to add the dir containing lstags.py to PATH.

Contact: Weibin Sun wbsun@cs.utah.edu