Bug in dirstate _iter_changes

John Arbash Meinel john at arbash-meinel.com
Wed Apr 25 22:28:58 BST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Aaron Bentley wrote:
> Aaron Bentley wrote:
>>> John Arbash Meinel wrote:
>>>> Aaron Bentley wrote:
>>>>> But iter_changes appears to sometimes recurse into unversioned
>>>>> directories, and if it doesn't have permission, it crashes.
>>>> Can you try it after my patch for:
>>>> http://bzr.arbash-meinel.com/branches/bzr/0.16-dev/iter_changes_unknowns_104257
>>> That fixed it.  Great!
> 
> I'm still seeing brokenness on this tree for "bzr diff".  I'm using
> bzr.dev revno 2456, and getting
> 
> bzr: ERROR: exceptions.OSError: [Errno 13] Permission denied:
> '/home/abentley/configs/web//forms2.r7-6-3/tmp/ziptempAp5BkA'
> 


Ahh, that is because the "skip this directory" is inside a "if
want_unversioned" clause.

Aaron: does this patch fix it for you?

=== modified file 'bzrlib/workingtree_4.py'
- --- bzrlib/workingtree_4.py     2007-04-20 20:39:53 +0000
+++ bzrlib/workingtree_4.py     2007-04-25 21:28:20 +0000
@@ -2159,6 +2159,14 @@
                                         del current_dir_info[1][path_index]
                                         path_index -= 1
                                     path_index += 1
+                        else:
+                            path_index = 0
+                            while path_index < len(current_dir_info[1]):
+                                current_path_info =
current_dir_info[1][path_index]
+                                if current_path_info[2] in ('directory',
+
'tree-reference'):
+                                    del current_dir_info[1][path_index]
+                                path_index += 1

                         # This dir info has been handled, go to the next
                         try:

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGL8gaJdeBCYSNAAMRAu7WAKCgUOTXw8EuLj6cinVAUOibKILkcwCfbVU5
2fo7Rx9dtM2VpEPFLGkI6zc=
=ATAQ
-----END PGP SIGNATURE-----



More information about the bazaar mailing list