[win32]<>[linux] X bit gets set on every file if you access a working tree in a win32 filesystem from Linux
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Low
|
Unassigned | ||
Breezy |
In Progress
|
Low
|
Jelmer Vernooij |
Bug Description
If you access a working tree written into a Windows filesystem (FAT32, NTFS) from Linux, Bazaar sets the X-bit flag for every file in the tree. When you revisit the tree in Windows, the X-bit is not dropped from the inventory.
At best, this is a major annoyance as it will generate a spurious change of every file in the tree unless you revert (and then unpick the bits of the revert you didn't mean to do like source changes from their backups).
At worst, this is potentially a security risk as files that are not intended to be +x may get committed and checked out into a Linux working tree.
Not quite sure how to fix it though.
- An x-bit option for "revert" would make this less onerous, but it wouldn't resolve the underlying problem.
- An option to ignore x-bit in the filesystem coupled with a means of manually setting x-bit in the inventory would work.
The obvious workaround is that disk space is cheap and doing a checkout into a native *nix file system isn't hard.
Changed in bzr: | |
importance: | Undecided → Low |
status: | New → Triaged |
tags: | added: fat |
Changed in bzr: | |
status: | Triaged → Confirmed |
tags: | added: check-for-breezy |
tags: | removed: check-for-breezy |
Changed in brz: | |
status: | New → Triaged |
importance: | Undecided → Low |
tags: | added: win32 |
Changed in brz: | |
status: | Triaged → In Progress |
assignee: | nobody → Jelmer Vernooij (jelmer) |
milestone: | none → 3.0.0 |
The "obvious workaround" suggested above does not work -- because this bug "poisons" a windows implementation as well.
I spent the entire morning writing this up as a new bug -- and I am going to include the whole document I created here. Post it near the water cooler -- it's good for a chuckle.
--
Vernon Cole
v v v v v v
I have to write this up as a bug report, because there is no other way to correctly document it. Will it ever be “fixed?” Probably not. In fact, by the time you get to the end of this document, you may add a new priority for bug fixes – lower than “Low.” Perhaps you should call it “Are You Kidding?”
There is an old joke about the guy who goes in to his doctor, complaining about a pain when he performs some very unnatural action. The doctor's advice is: “well, don't DO that!”
But then the doctor just HAS to ask what brought about the situation, and the story comes out. This is like that. I can't help myself. I am an eccentric geek. We do this sort of thing. I also wrote a Python class implementing PEP 313 (also known as PEP CCCXIII) and published it on Launchpad. I can't help myself, it just HAPPENS!
In reality, this is praise – not a complaint. If it were not for the countless hours spent by dedicated FOSS software engineers, I would never have been able to get into this situation. My situation is a result of the resounding success you have achieved in creating cross-platform software. Well done!
So before you read on, get up, take a break, go to the rest room, and get a fresh Coke on the way back to your desk. Then proceed.
- - - - - - - - - - - - - - - - - - - - -
The situation and the guilty parties and components:...
Me:
I first started going crazy when employed by John Fluke (the company) in Washington state. John Fluke (Junior -- the person) had the idea that Test Engineers would be more efficient if they had a better language in which to express their design of programs for Automatic Test Equipment. A young electrical engineer came up with the idea of a table of test steps and responses, and wrote a program to implement the idea in RSTS/E BASIC+ which he called Test Table Interpreter. This would have been around 1977. I was given the job of re-implementing Test Table Interpreter, first on FORTRAN IV on an RSX-11M system, and then in assembly language on a Zilog Z80 running in a Fluke 8500 voltmeter chassis. A goodly portion of the factory was soon using TTI test programs. I have been fascinated by the idea of cross platform software, and table driven programming, ever since.
Fast Forward … 1981 – Portland, Oregon … I became aware of a small software house who was creating a new method of producing Data Processing systems using table driven software. Their system, called RDM, was written in Oregon Software Pascal, and ran on RT-11 and RSTS/E. It used a new idea called a relational database. I took the job of porting their code to RSX-11M and then VAX/VMS Pascal.
Fast Forward … 1991 – Orem, Utah … My sister came to me with a problem. And accounting system she supported, written in Data General Business Basic, was dieing due to lack of hardware. It was too complex, she said, to re-write fo...