Case sensitivity global option for better cross-platform support #5104
Travisyard
started this conversation in
Ideas
Replies: 1 comment 6 replies
-
Sorry, just need some clarification here. What is your preferred behaviour? What do you think that beets should do instead of what it is doing? As far as beets as concerned, the artist is different if the case is different, unless, as you said, you put it in a template function that changes it. I'm a little confused as to what you think beets should be doing. You're saying that you want the preferred style of the artist but seems mutually incompatible with not having case sensitive names. |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello beets community,
My music library's files are synced to multiple systems with different operating systems and filesystem formats. My beets library is managed on Linux which is usually case-sensitive. Some platforms (namely Android and Windows) are usually case-insensitive, and this has caused me some headaches.
For example, one artist I have in my library has released albums as both "Diaf" and "DIAF". On most Linux systems, these two directory names can exist side-by-side. However, on Windows and Android they are generally considered the same directory. Another example of this occurred when I tried to replace a corrupted file in the same album. The original album folder was "Sound of Silver", but the replacement song imported into the folder "Sound Of Silver". This resulted in the same failure mode.
One workaround I have found is to use the
%upper{}
,%lower{}
, or%title{}
functions in the path formats, but this workaround is only bulletproof if every$template
substitution is nested inside one of these functions. Also, I'd like to retain filenames that match the preferred stylization of the artists I listen to ("ABSRDST" and "LOOK MUM NO COMPUTER" should be all uppercase, "ev.exi" and "clipping." should be all lowercase).I suggest adding a global configuration option like
case_sensitivity: yes|no
. The default for systems that are usually case-insensitive should beno
, and the default for systems that are usually case-sensitive should beyes
. Users who manage their beets library on a case-sensitive system and then copy/move/synchronize to a case-insensitive system would be able to change this option to prevent unexpected copy/move/synchronize errors.Reference: Case Sensitivity on Wikipedia
Beta Was this translation helpful? Give feedback.
All reactions