[merge] win32- executable bits toggling #45010

John A Meinel john at arbash-meinel.com
Mon Jun 26 20:59:25 BST 2006


https://launchpad.net/products/bzr/+bug/45010

The essential problem is that on win32 we want to maintain the
executable bit that existed when we grabbed the branch the first time,
because chmod() does nothing on win32 (stat() won't return the value set
in chmod()).

The current bzr.dev saves "executable=yes" in .bzr/checkout/inventory
only on win32. And then WorkingTree.is_executable() is special cased to
just return the inventory value on win32, or the stat() results on other
platforms.

This works in general, but we ran into problems with TreeTransform
because it explicitly asks the inventory objects to
'_forget_tree_state()'. Because in general we don't want to store the
sha1 hashes or symlink targets in the working inventory.

The attached bundle changes it so that we always serialize the
'executable=yes' flags. It turned out that we would sometimes serialize
executable=yes, on all platforms. This just adds a couple specific tests
to make sure that the flag stays there, and then changes InventoryFile
so that it doesn't forget the flag.

The changes are on a branch which also merged Alexander's drive letter
fix, and moves the blackbox revert tests out of tests_too_much. So I'm
only posting the diff for review. I can post the whole bundle for review
if people are okay with the change.

John
=:->
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: win32-45010.diff
Url: https://lists.ubuntu.com/archives/bazaar/attachments/20060626/8a1069c8/attachment.diff 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 251 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060626/8a1069c8/attachment.pgp 


More information about the bazaar mailing list