[MERGE][0.15] Small updates for win32 support

John Arbash Meinel john at arbash-meinel.com
Fri Mar 9 00:55:20 GMT 2007

Hash: SHA1

The attached patch has 2 fixes for win32. Not all tests pass, but at
least more of them pass than before.

One fix is to make WorkingTree4.inventory() properly include the
executable bit for the inventory entries. It only showed up when
TreeTransform.apply() was called, because it ends up calling
_write_inventory(), which would set all of the files back to non-executable.

The other fix is to change some of the merge internals to avoid opening
the same workingtree 2 times. (One as basis, and the other as
this_tree). I don't think I've covered all of the cases, but in the
short term we need this because we can't take out a shared lock on a
file after we have taken out an exclusive lock.

My next step is to update the Lock objects, so that we are properly
exclusive on Linux (since fcntl isn't). (For example, if we have an
exclusive lock, we should fail when trying to take out a shared lock,
and when we have a shared lock, taking an exclusive lock should fail).
Right now we only fail if we try to take an exclusive lock, and we
already have an exclusive lock.

That will probably bring out a bunch of exceptions, where we have code
that is opening the same thing more than once.

But with this patch, the 'test_merge_core' tests pass, as do the
workingtree_implementations/test_executable.py tests.

Oh, and I'm wondering if we don't want to set 'text_size' and
'text_sha1' as part of _generate_inventory. Because if it is coming back
to us as part of "_write_inventory" that allows us to not invalidate all
of our sha1 hashes just because we had a merge applied.

Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: win32_0.15_fixes1.patch
Type: text/x-patch
Size: 13368 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070308/3d00f97f/attachment-0001.bin 

More information about the bazaar mailing list