Author Topic: Support the OSX filesystem fully  (Read 4545 times)

Offline humanclock

  • Newcomer
  • *
  • Posts: 11
    • View Profile
Support the OSX filesystem fully
« on: October 26, 2013, 11:36:31 AM »
* Add support for symbolic links/aliases
* Support case sensitive journaled filesystems

Note: I am using 4.6.9 and have not upgraded.  Please let me know if these issues have been resolved and I will upgrade.

I had to (sadly) stop using PM when symbolic links/aliases got removed.  This made the PM a non-starter for my workflow.  I still use it from time to time when possible, but unfortunately I ran into another problem.

My non-system Mac drives are formatted case-sensitive journaled.  I have to maintain full compatibility with my Linux servers and web services.  In doing some housekeeping I had a folder with a lot of photos that were generated from a variety of programs and sources (some force a .JPG extension, others use .jpg).  If I looked at the folder in the Finder it showed 1,211 photos, yet when I looked at it in PM it was only showing 852 photos.  I couldn't figure out why PM wasn't showing all the photos and then saw it was because files shared the same name but differed in the extension (JPG vs jpg).


Offline Kirk Baker

  • Senior Software Engineer
  • Camera Bits Staff
  • Superhero Member
  • *****
  • Posts: 25020
    • View Profile
    • Camera Bits, Inc.
Re: Support the OSX filesystem fully
« Reply #1 on: November 01, 2013, 06:30:34 PM »
* Add support for symbolic links/aliases
* Support case sensitive journaled filesystems

Note: I am using 4.6.9 and have not upgraded.  Please let me know if these issues have been resolved and I will upgrade.

I had to (sadly) stop using PM when symbolic links/aliases got removed.  This made the PM a non-starter for my workflow.  I still use it from time to time when possible, but unfortunately I ran into another problem.

My non-system Mac drives are formatted case-sensitive journaled.  I have to maintain full compatibility with my Linux servers and web services.  In doing some housekeeping I had a folder with a lot of photos that were generated from a variety of programs and sources (some force a .JPG extension, others use .jpg).  If I looked at the folder in the Finder it showed 1,211 photos, yet when I looked at it in PM it was only showing 852 photos.  I couldn't figure out why PM wasn't showing all the photos and then saw it was because files shared the same name but differed in the extension (JPG vs jpg).

We'll likely never support classic Mac aliases.

But we may support symlinked files/folders.  Can you tell me more about how you use symlinks?  Examples would be helpful.  Are you symlinking folders, or are you putting a number of symlinks to actual files in a folder and then browsing it?

One issue to consider would be for "attached" files.  These are files that have the same base name as an image but have a different extension. XMP sidecar files and WAV sound files are two examples.  If you're symlinking a NEF file and it has a WAV or an XMP sidecar file, then all of them would need to be symlinked in order for things to work properly.  Moreover, if you don't have those files yet and you browse a symlinked version of the file and then do some sort of metadata edit, PM would create the XMP sidecar file in the directory of the symlink file and not where the original resides.

Lastly, PM could get confused if you browsed two folders, one containing the original files, and the other containing symlinks to the files.  They're both actually the same file, but unless PM goes out of its way it won't know that they're the same file.  This could lead to problems where you've edited IPTC Info in one tab and when you switch to the other tab and view IPTC Info you won't necessarily see the same data.

We'd really need to know more about usage patterns and expectations.

Case-sensitive file systems are another issue entirely and we can talk about that later.

-Kirk

Offline humanclock

  • Newcomer
  • *
  • Posts: 11
    • View Profile
Re: Support the OSX filesystem fully
« Reply #2 on: November 01, 2013, 10:11:00 PM »
Hey Kirk,

I only call them "aliases" just because when I make a traditional UNIX symlink (eg "ln -s (path/to/source file) (path/to/linkname)", when I look at it in the Finder it refers to it as an "alias".

Basically I have a script which scans the EXIF contents of several thousand photos across several directories on several drives on several machines (whew), and based on certain conditions, it will populate a single directory off my Desktop with symlinks.  This way I only ever have to work with the contents of one single directory, rather than spending all my time navigating through various folders in a GUI to manipulate the the photos I need.

That is a good point about the attached/sidecar files though and am not sure the answer on that one.  I would think that PM would just follow the symlink if available to a given file.  It isn't PM's responsibility at this point to make sure that the sidecar files also have corresponding symlinks...that is on the user.  If new sidecar files were created, then they would go to the same location that the symlink resides, not to the same destination as the symlink.  Again, the user's problem to deal with.

This is how UNIX works anyways. At the command line you make a copy of a file which happens to be a symlink to a file elsewhere, the copied file is stored in the current working directory, not at the symlink destination.

Lastly, PM could get confused if you browsed two folders, one containing the original files, and the other containing symlinks to the files.  They're both actually the same file, but unless PM goes out of its way it won't know that they're the same file.  This could lead to problems where you've edited IPTC Info in one tab and when you switch to the other tab and view IPTC Info you won't necessarily see the same data.

It shouldn't matter should it?  PM only lets you edit one file at a time in the IPTC window. Doesn't PM refresh the directories? (eg, if you changed the date/time of a photo, doesn't PM refresh to show this change?)  I'm not up on the internals of PM, but if the mtime of a file changes in a tab, doesn't PM refresh that file in the tab?