Design philosophy
A lot of thought have been put into where Rawstudio stores its data about your image files. Our base philosophy is that you should be able to keep your images wherever you like. That means we set up these basic rules:
So to accommodate this, we most importantly choose that your settings are stored alongside your images, and not in a central database. This gives us the most flexibility in and satisfies most of the points above, but of course this still presents some challenges. I will go into specifics below.
Image settings
This includes all of the sliders in the adjustment panel, crop, rotation, etc. This is always stored in the same folder as your images, or to be precise in a folder called “.rawstudio” inside your image folder. In this folder we store:
When you move your images around, the folder and its content should be moved along with it. As long as you do that your settings for the images will be retained.
This enables a feature that you may find very helpful. It you have a reasonable fast card reader, it will enable you to work on the images on your flash card. That means, you can put the Flash card in your reader, and look and work on the images there – no need to transfer them first. You can then pop the card right back into the camera, and keep shooting – and when you are done, you can still copy your images to your computer, and your settings will still be there (if you copied the settings folder along, of course).
Here we have enable “Show hidden files” to see the “.rawstudio” folder.
Read-only media of course presents a different challenge. When Rawstudio discovers that it cannot create a folders for its settings, it will instead store your metadata in the “.rawstudio” in your home directory. More specific in a subfolder called “read-only-cache”, with each image being identified from an MD5 of 1KB of the centre of the image file.
So basically, if you move your photos, move the entire folder so the “.rawstudio” folder, or remember to copy it along if you are moving single images. Then your settings will be preserved.
Tagging information
Tagging is a bit different compared to image settings, since we want to be able to search through them. For tags we primarily employ a single database, that contain images, their complete path and their tags.
Tags are stored in two different way to make sure you don’t loose them if you move your images to another computer
Of course this presents its fair bit of problems, so to be able to maintain the flexibility we set out for above. So to maintain this, we also store a backup of your tags alongside the images. This is stored in a single xml file, which will be read back whenever you open a directory. This will re-add your tags, if you moved the directory or open it on another computer.
When you search your tags we then sort out the files that doesn’t exists any longer, and simply skips them.
So if you for one reason or another have lost your tag database (btw, called library.db in home/user/.rawstudio), just re-open your image folders to re-add them. You can of course use the “Open Recursive” feature, though it may take a while depending on your image library size.
General settings
General settings for your application are stored the the gconf database. These are mostly UI settings, and pretty easy to set up on a new system, so losing them shouldn’t be a big deal.
Lens selection information and camera default settings are stored in the “.rawstudio” in your home folder. These can be transferred to a new system if these selections are very useful for you.
I dislike programms creating dot-directories at different places. I take a peek on a friends SD Card with rawstudio, there he goes with a dotfile… if every program had this attitude, most folders would be spammed. :(
I’d prefer the ro-behavior even on rw-media. If I want to store the data side by side with the images, to give it to a friend, I could export it as a “project file” (which could be a zip containing all the relevant data, for example).
If I copy or move files (not folders), the hidden dotdirectory won’t be selected and thus ommited.
Its better to have one central place where all your information for rawstudio is kept: home/user/.rawstudio, and not spreaded all over my filesystems and NAS.
I believe you can use this checkbox to store everything in /home/user/.rawstudio/:
Edit -> Preference -> “Place cache in home directory”
I disagree with Joe. Having the settings stored alongside the images means my Rawstudio data will be backed up alongside my regular photo backups. If I restore a folder of photos from my backups I also get the rawstudio settings.
Anders, well, yes, it’s good to hear you can configure the behavior you prefer.
Simon, I can’t follow your point. First, you should backup your homedirectory, too, or at least its possible to backup your .rawstudio dir in your homefolder. Or you can place your central .rawstudio-directory somewhere where it will be backuped.
From a “general” user perspective, it is far easier to know that if you backup your raw files, your settings are also backed up.
So if you attach your backup HD to any computer, you will always get the settings, without having to fiddle with individual files in the home directory.
It is not like we are spraying your HD with unneeded data. It will only be in directories you’ve opened, and which contain raw files.
Anyway, as Anders points out, you do have the choice to do this either way. :)
Klaus, yes, I understood its a configurable behavior, but I assumed your blog post is like an “request for comments”, so I commented my point of view – I am not complaining and especially not panicing ;)
I am just offering a different p.o.v. to consider.
There are different philosophies about this topic, and I think you can’t say one is “the true one” or a completely false one. More likely every approach has its own advantages and disadvantages.
It’s not that I don’t see the advantages of your approach, but for me the disadvantages count more.
I have a big repository on a NAS, organized with a diretory tree like this:
/[year]/[#week]/[timestamp].raw
This makes aprox. 300 subdirs for the last 6 years. I don’t like the idea of having a .dotdir in each of them…
Right now on my NAS:
# df -h /dev/md0
Filesystem Size Used Avail Use% Mounted on
/dev/md0 734G 410G 325G 56% /mnt/HD_a2
# df -i /dev/md0
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/md0 48832512 378728 48453784 1% /mnt/HD_a2
So from my point of view, if you’re able to store 6 year photo archive on your NAS, you should have enough capacity and inodes to store couple of .dotdirs along – even with default FS settings.
I really like the ability to edit and access the same photo archive from multiple computers, and I really think, that this is absolutely worth couple of inodes and megabytes.
I’m not complaining or panicing – just commenting my point of view ;)
1+ to Joe’s point of view.
Take the Apple’s Finder for example. I have to spend some time tiding up the mess that it does whenever i open up a folder, creating all sorts of .DS_Store and even those incredible ._.DS_Store files. It’s really disgusting.
A simple feature that would be appreciated would be the ability to specify a different cache folder than the .rawstudio in user’s home. As Lightroom does, making it possible to have a folder structure more or less like this:
/photoware/rawstudiocache
/photoware/lightroomcache
/photoware/warehouse/2011/08/23/myfile.raw etc
As said to Joe, select “place cache in home directory” in preferences.
Hello! Rawstudio is just a wonderful piece of software, thanks for developing it! I have a question, tho: I can add tags to pictures, but is there an easy way to un-tag a previously tagged picture? As well, will rawstudio read tags from other softwares as shotwell, etc?
Thanks again!
Hi, I am just getting into using rawstudio and exploring how it works. Yesterday I took some photos and batch converted them to JPEG’s which I stored in a folder on my laptop. Today I opened the SD card to try to re-process the original images in rawstudio with the export set to TIFF but I find that I cannot reload these files as they are greyed out. I’m sure there is a simple solution but so far I can’t find it. Any help would be appreciated, thanks Andy