bzr (linux) doesn't handle FAT's limitations (X-bit and symlinks) well. Should behave like on windows.

Bug #377243 reported by alsuren
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Fix Released
Jelmer Vernooij

Bug Description

Steps to reproduce:

create a repo on an ext filesystem, and do some stuff
copy it to a fat32 memory stick
watch bzr status think that everything's changed permissions.

add a symlink on the ext side, and do it again
watch bzr give a really unhelpful permission denied error.

This is what the chaps in #bzr think about the issue:

(11:49:27) lifeless: so the basic problem is, fat is returning garbage data, and we assume when the platform is unix that all fs's track X reasonably well
(11:49:39) lifeless: we have code to work around no X tracking but only activate it on windows
(11:49:42) lifeless: file a bug please
(11:50:04) lifeless: I suggest we add a a config setting/environment variable to force that workaround code on in this sort of situation
(11:50:43) Peng_: What about explicitly checking if the fs supports it?
(11:50:51) Peng_: Same way you do the CIFS checks?
(11:51:13) lifeless: Peng_: what CIFS checks
(11:51:23) lifeless: Peng_: do you mean the case insensitive ones?
(11:51:28) Peng_: Yeah.
(11:51:37) lifeless: we need either reference data or to write
(11:51:48) lifeless: its possible in principle

Related branches

Revision history for this message
alsuren (alsuren) wrote :

There are a few OS level bugs that may be related to this one:, eg.

but checking whether your working tree supports chmod et al is still useful. See also:

Revision history for this message
alsuren (alsuren) wrote :

see also and

The second link contains the workaround I'm currently using for the permissions (I decided that setting the permissions to 644 was better than all 755 for my project.)

Revision history for this message
Robert Collins (lifeless) wrote :

Working with mounting FAT fs's isn't a core use case at the moment. It is something we can improve on though.

Changed in bzr:
importance: Undecided → Wishlist
status: New → Triaged
Martin Pool (mbp)
Changed in bzr:
status: Triaged → Confirmed
Jelmer Vernooij (jelmer)
tags: added: check-for-breezy
Jelmer Vernooij (jelmer)
Changed in brz:
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Jelmer Vernooij (jelmer)
Jelmer Vernooij (jelmer)
tags: removed: check-for-breezy
Jelmer Vernooij (jelmer)
Changed in brz:
status: In Progress → Fix Committed
Jelmer Vernooij (jelmer)
Changed in brz:
status: Fix Committed → Fix Released
milestone: none → 3.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.