Support local filesystem quirks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu One Client |
Won't Fix
|
Wishlist
|
Ubuntu One Foundations+ team |
Bug Description
The client should support any local filesystem restrictions.
All path names in the server (files, directories, folder names, etc.) are Unicode objects. The ubuntuone-
At the same time, it should accept any local name and be able to convert it to a valid Unicode object, without altering the real name used in the system.
Example of the former is having in a linux client a filename called "foo: bar", which will be u"foo: bar" in the server, but can not saved as is in a windows client: it should use a different name there, but the server name (and the name used by the linux client) should remain unchanged.
Example of the later is having a path in disk called "foo\xffbar" (in a linux client), that can not be converted to Unicode using UTF-8. So, it must use a different name against the server, but it should remain called like that in the local disk.
To achieve this we will do two changes, mainly:
- start using metadata in the whole client, and translate to a "local name representation" as close as possible to the filesystem calls/events.
- store the "local name representation" as a metadata attribute, if needed; this will not imply a metadata migration: if there, the attribute will be used.
So, the points where we will take care about this is:
- storing partial files while downloading
- saving nodes when downloaded
- finding new nodes in local rescan
- moving files into conflict
- receiveing filesystem notifications
- handling UDFs and shares
Just for reference, we talked a lot about this in bug #368626. What is explained there is a bit different, but it's a good read.
Related branches
- Guillermo Gonzalez: Approve
- Manuel de la Peña (community): Approve
-
Diff: 368 lines (+128/-36)7 files modifiedtests/platform/test_os_helper.py (+76/-7)
ubuntuone/platform/linux/__init__.py (+10/-7)
ubuntuone/platform/linux/os_helper.py (+13/-0)
ubuntuone/syncdaemon/filesystem_manager.py (+12/-11)
ubuntuone/syncdaemon/hash_queue.py (+2/-2)
ubuntuone/syncdaemon/local_rescan.py (+11/-8)
ubuntuone/syncdaemon/sync.py (+4/-1)
Changed in ubuntuone-client: | |
status: | Triaged → In Progress |
Changed in ubuntuone-client: | |
importance: | High → Wishlist |
tags: | added: chicharra-oneiric |
Changed in ubuntuone-client: | |
status: | Confirmed → Won't Fix |
This is deferred to the future.