(Obviously this mechanism breaks down if a file is both moved and modified.)
#Tagspaces tag libraries update
A 'repair' command is provided that will update the paths of moved files. However the application stores fingerprints of the files tagged which are used to help identify moved files. Either via the command-line tool or by browsing the tag directories in the virtual file-system.įiles can be moved around without losing the previously associated tags It provides a command-line tool for tagging and a virtual file-system for browsing (where tags are represented by directories).Īny file readable by the user can be tagged freelyĪ user can search for files matching one or several tags It currently meets some, but not all, of your requirements. I've just released an alpha of my new program that attempts to provide this functionality. Apart from this, this whole task seems to be the kind of thing Perl is well-suited to. I anticipate one tricky case: what if the tagged file is not where the tags say it should be, the reverse lookup file says it still exists, but the prodigal file is not where the lookup file says it is, the lookup file being out of date? There are a few ways to handle this case, none obviously ideal. If there is no match, then the required surgery can be performed (does the inode still exists? where is it?), and the reverse lookup file being either mutated or regenerated, and the tag symlinks being updated. We can run a service on the reverse lookup file, which checks that each inode given in the filename of a tag matches the inode of the file (if any) the tag points to. The "reverse-inode-lookup" file described by the link (2) you showed me in your answer to (1) can be used to give some additional infrastructure.
If the tags took the form $TAG_$INODE_$FILE and we have an efficient way to find which paths have a given inode, then we can do this, losing tags only if we move out of filesystems.
It's not clear what kind of searching you want. Would like to hear some thoughts on using them while I try my hand at some hacks myself, eventhough this might warrant a new question.
That's a native solution for most recent filesystems, but they aren't very well supported yet (most coreutils destroys them by default, cp for example needs the -a flag to preserve them). Ok so beagle has huge gnome dependencies, and tracker is okish, but still has some dependencies I don't like.īeen doing some more research, and the way to go could very well be extended file attributes. Meanwhile I'll review beagle and metatracker, which have been mentionned here, and see how they perform. I've been hoping for some basic filesystem & coreutils hackery to handle this, but I haven' thought about this hard enough yet.