jottalib icon indicating copy to clipboard operation
jottalib copied to clipboard

Handle Jottacloud's case-insensitive API

Open goddva opened this issue 9 years ago • 8 comments

It seems that Jottacloud is using a case-insensitive filesystem, so if you have two files with the same name, but different case, it will only upload the first file. It will however tell that the second file was uploaded, but its not visible on the Jottacloud. Now after each new run, it will tell that the file was uploaded, even if it was not.

goddva avatar Dec 18 '14 07:12 goddva

Yikes. That's crazy.

havardgulldahl avatar Dec 18 '14 21:12 havardgulldahl

But you're right, I can confirm the madness.

Maybe since they started out with windows, that's why the servers don't care about case. But I wonder what the mac os client does about this if the file system is case sensitive.

havardgulldahl avatar Dec 18 '14 21:12 havardgulldahl

The Mac client is having the same problem. I tested with an external disk formated with "Mac OS Extended (Case-sensitive, journal)", placed four files in a folder, all with the same name, just different case. Only one file was uploaded.

goddva avatar Dec 19 '14 22:12 goddva

It's crazy that the server side works that way, but none of the supported client operating systems are case sensitive, so it's not that strange this hasn't been a priority for them. As you can see from this thread, HFS+ (OS X) is case-preserving, but not case sensitive. It can be configured to be case-sensitive, though.

Same thing for Windows: NTFS is case sensitive, but the Win32 API won't let you create files that only differ by case.

So crazy, but not that crazy :-)

fatso83 avatar Mar 17 '15 20:03 fatso83

Ok, so we'll have to fix this on the client end, and make the tools do something clever. Thanks for your comments, guys.

havardgulldahl avatar May 27 '15 22:05 havardgulldahl

Here's what we'll do.

From https://mail.python.org/pipermail/python-dev/2009-May/089524.html

>> Or you can just be practical and test for it. Create a file "foobar" and see if
>> you can open "FOOBAR" in read mode...
> 
> Agreed.  That is how Bazaar's test suite detects this, and it works well.
> 
> -Andrew.
Actually, I believe we do:
open('format', 'wb').close()
try:
    os.lstat('FoRmAt')
    casesens = True
except IOError, e:
    if e.errno == errno.ENOENT:
        casesens = False

havardgulldahl avatar May 29 '15 17:05 havardgulldahl

Move to milestone 0.5

havardgulldahl avatar Jan 22 '16 00:01 havardgulldahl

Move to milestone 0.6

havardgulldahl avatar Jun 15 '16 21:06 havardgulldahl