[Digikam-devel] [Bug 109820] Offer: Utility script to export tag information of images into the filesystem
Mats Ahlgren
ahlgren at mit.edu
Wed Aug 2 20:16:44 BST 2006
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=109820
------- Additional Comments From ahlgren mit edu 2006-08-02 21:16 -------
> Your suggestion to create an option for let me call it "archiving" the tag
> structure in an extra directory containing a Linktree and a Photos
> subdirectory and using hard links will solve the problems for this scenario.
Yes, exactly. Just to be sure we're on the same page:
{linktree} <--[symbolic links]--> {photo directory} <--[hard links]--> {digiKam collection}
This scheme (called an indirection layer) will solve the problem.
> However one limitation to this solution is that hard links are bound to
> filesystems, so the archive directory has to be on the same filesystem as the
> original photos because hardlins can only be created in one filesystem and
> not across filesystem boundaries.
Not exactly; it still works beautifully (I have tested it infact). Here's a proof of concept:
>> Step 1) Create a fake DigiKam photos directory.
mats moonfish:~
$ mkdir Pictures
mats moonfish:~
$ echo "test: 123" > Pictures/example.jpg
>> Step 2) Simulate proposed modifications to your script.
mats moonfish:~
$ mkdir DigiKamExport
mats moonfish:~
$ mkdir DigiKamExport/linktree
mats moonfish:~
$ mkdir DigiKamExport/photos
mats moonfish:~
$ ln Pictures/example.jpg DigiKamExport/photos/hard-link-to-example.jpg
mats moonfish:~
$ cd DigiKamExport/linktree/
mats moonfish:~/DigiKamExport/linktree
$ ln -s ../photos/hard-link-to-example.jpg soft-relative-link-to-hard-link-to-example.jpg
mats moonfish:~/DigiKamExport/linktree
$ cat soft-relative-link-to-hard-link-to-example.jpg
test: 123
> What the test setup looks like...
mats moonfish:~
$ ls -CFRl DigiKamExport/
DigiKamExport/:
total 8
drwxr-xr-x 2 mats mats 4096 2006-08-02 14:55 linktree/
drwxr-xr-x 2 mats mats 4096 2006-08-02 14:52 photos/
DigiKamExport/linktree:
total 0
lrwxrwxrwx 1 mats mats 34 2006-08-02 14:55 soft-relative-link-to-hard-link-to-example.jpg -> ../photos/hard-link-to-example.jpg
DigiKamExport/photos:
total 4
-rw-r--r-- 2 mats mats 10 2006-08-02 14:52 hard-link-to-example.jpg
>> Step 3) Create a tarball-gzip archive of DigiKamExport to export to a friend
mats moonfish:~/DigiKamExport/linktree
$ cd ../..
mats moonfish:~
$ tar -cvvzf DigiKamExport.tgz DigiKamExport/
drwxr-xr-x mats/mats 0 2006-08-02 14:51:12 DigiKamExport/
drwxr-xr-x mats/mats 0 2006-08-02 14:55:50 DigiKamExport/linktree/
lrwxrwxrwx mats/mats 0 2006-08-02 14:55:43 DigiKamExport/linktree/soft-relative-link-to-hard-link-to-example.jpg -> ../photos/hard-link-to-example.jpg
drwxr-xr-x mats/mats 0 2006-08-02 14:52:05 DigiKamExport/photos/
-rw-r--r-- mats/mats 10 2006-08-02 14:52:49 DigiKamExport/photos/hard-link-to-example.jpg
>> Step 4) Simulate sending file to another computer, and extract it.
mats moonfish:~
$ mkdir AnotherComputer
mats moonfish:~
$ mv DigiKamExport.tgz AnotherComputer/
mats moonfish:~
$ cd AnotherComputer/
mats moonfish:~/AnotherComputer
$ tar -xvvzf DigiKamExport.tgz
drwxr-xr-x mats/mats 0 2006-08-02 14:51:12 DigiKamExport/
...[snip]...
>> Step 5) Proof that the new hard link is an entirely new file, but the symbolic relative link still works.
mats moonfish:~/AnotherComputer
$ cat DigiKamExport/linktree/soft-relative-link-to-hard-link-to-example.jpg
test: 123
mats moonfish:~/AnotherComputer
$ echo "test2: 456" > DigiKamExport/photos/hard-link-to-example.jpg
> Relative symlink still works on "AnotherComputer".
mats moonfish:~/AnotherComputer
$ cat DigiKamExport/linktree/soft-relative-link-to-hard-link-to-example.jpg
test2: 456
mats moonfish:~/AnotherComputer
$ cat ../DigiKamExport/
linktree/ photos/
> The files ~/DigiKamExport/photos/hard-link-to-example.jpg and ~/AnotherComputer/DigiKamExport/photos/hard-link-to-example.jpg are different files now.
mats moonfish:~/AnotherComputer
$ cat ../DigiKamExport/linktree/soft-relative-link-to-hard-link-to-example.jpg
test: 123
More information about the Digikam-devel
mailing list