I remember looking at this a few years ago. My main reason for not using it was the time it would have taken to tag all my files.<p>Basically, if you have so many files that it's worth tagging them, you need to spend a lot of time tagging, and if you have so few that it's reasonable to tag them all, you don't need this system. If you have a manageable number but expect tagging to be useful in the near future, then this might be useful.<p>I'd be interested in hearing from people who have found a use for TMSU.
I haven't tried it yet, but at first glance, a lot of work and thought went into this tool: query parser, SQL, VFS layer, fingerprinting, file move detection ("repair"). The code looks pretty readable and well organised too.<p>Generally speaking, I can't help but feel we're not quite there yet when it comes to meta-data and flexible file system views. We're still coming up with all sorts of cataloguing systems for different types of binary files – I just implemented a Vorbis comment (music tag) parser the other day, and that's just one out of many formats.<p>Extended attributes (attr(5), "user_xattr") are enabled by default these days on most Linux file systems, but are limited in space and I don't see a lot of tool implementations around the functionality.<p>Sure there are some general blunt force search indexers, but overall I feel we still live in a Wild West meta-data age as opposed to the myriad of well standardised open data formats.<p>It would be nice to be able to use a (music, movie, picture, porn, whatever) site's existing meta-data when downloading a file, or hide all work-related files from the file system when you're at home.
I'm currently working on <a href="https://keepallthethings.com" rel="nofollow">https://keepallthethings.com</a> which offers a similar service only web based with a GUI so it will either be more useful or less for you depending on your use case. If anyone wants to try it out go through the sign up process until you hit the credit card form and stop then send me an email(in my profile) and I'll set you up with a free account. Its just launched so there are a lot of features still on the roadmap instead of implemented but it'd be nice to have other peoples feed back/ideas for improvements as I go.
The first use case that came to my mind has been the one I've had difficulty with for the longest - marking/unmarking my music files to sync with my Android phone. I've heard Rhythmbox is good for that but what I'm looking for is a window which shows all my music with those that are also on my phone marked somehow (maybe a differently colored icon or something like that). I should be able to right click or use a shortcut to mark/unmark the music and once done, the music on my phone is updated. Files previously present and now unmarked are deleted, files newly marked are copied.<p>I can see using TMSU for this with following approach:<p>1. Mount the VFS, to e.g. mount point "mp"<p>2. Using Nemo Actions (I use Linux Mint), call a script that upon executing on the selected file will do the following:<p>- toggles the "sync" tag (so all files with "sync" will show-up under "mp/tags/sync")<p>- If the file already has a "sync" tag, untag it (can it be done by doing an rm on "mp/tags/sync/<filename>"?)<p>- Based on tag being present or not, toggle file icon to visually indicate if the file is marked/unmarked. I don't know how this can be done.<p>3. Once done, we can run a simple rsync script that syncs "mp/tags/sync/*" to the sdcard on the phone.<p>Not sure when I will get around to actually implenting this :)
git-annex has some interesting tagging functionality. It uses trees of symlinks to provide the virtual filesystem: <a href="http://git-annex.branchable.com/metadata/" rel="nofollow">http://git-annex.branchable.com/metadata/</a> and <a href="http://git-annex.branchable.com/tips/metadata_driven_views/" rel="nofollow">http://git-annex.branchable.com/tips/metadata_driven_views/</a>
I've always wanted this for Windows. I wonder how hard it would be to port it.<p>In a business setting, I often see people's desktops cluttered with files. It'd be nice to give them a virtual folder on the desktop where they can drag and drop files into in to it, with tags.
Without the virtual file system, does this work by hashing the files? That would make it very slow to use on larger files. If I was to tag my movie collection, would TMSU have to load every byte of every movie in order to show the file tags?
I tag directories, not files. Way more sustainable over time, because there is no way I'm going to tag every single file.<p>Files tend to be better at describing themselves. To take an example from the TMSU docs, why would I ever need to tag an .mp3 file as music? If it's an MP3, and it's under my music directory, it's pretty clear what it is.
To predict where is something, I use an hierarchical folder system to organise my documents based on GTD [1]. The initial investment (file renaming) pays off on the long run.<p>[1] <a href="https://github.com/we-build-dreams/folder-system" rel="nofollow">https://github.com/we-build-dreams/folder-system</a>
How about auto tagging of you files?
<a href="http://cloudfindhq.com/" rel="nofollow">http://cloudfindhq.com/</a><p>We actually automatically tag files in Dropbox and Google Drive, so there's no need to move files<p>disclaimer: I work here!
Hm. How could this be used efficiently for real work? I think because many of our tools are already file-based, this is not the greatest idea for uses cases that require structure. If anything tagging should be used along side hierarchical layouts...Or users should follow the standard of what /etc, /home, /lib and friends are used for. They are essentially tags in directory form.<p>Take TMSU's example command:<p>tmsu tag summer.mp3 music big-jazz mp3<p>We could come up with the same behavior WITHOUT an additional program:<p>mkdir ~/music/big-jazz/mp3/<p>ln -s ~/Downloads/summer.mp3 ~/music/big-jazz/mp3/summer.mp3<p>Could easily make this into a shell script.<p>Just my 2 cents.