Bug in dirstate _iter_changes

Aaron Bentley aaron.bentley at utoronto.ca
Wed Apr 25 21:44:11 BST 2007


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

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'

Traceback (most recent call last):
  File "/home/abentley/bzr/bzr.dev/bzrlib/commands.py", line 718, in
run_bzr_catch_errors
    return run_bzr(argv)
  File "/home/abentley/bzr/bzr.dev/bzrlib/commands.py", line 679, in run_bzr
    ret = run(*run_argv)
  File "/home/abentley/bzr/bzr.dev/bzrlib/commands.py", line 375, in
run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/abentley/.bazaar/plugins/bzr_difftools/__init__.py", line
81, in run
    return super(cmd_diff, self).run(*args, **kwargs)
  File "/home/abentley/bzr/bzr.dev/bzrlib/commands.py", line 689, in
ignore_pipe    result = func(*args, **kwargs)
  File "/home/abentley/bzr/bzr.dev/bzrlib/builtins.py", line 1470, in run
    old_label=old_label, new_label=new_label)
  File "/home/abentley/bzr/bzr.dev/bzrlib/diff.py", line 375, in
diff_cmd_helper    extra_trees=extra_trees)
  File "/home/abentley/bzr/bzr.dev/bzrlib/diff.py", line 403, in
show_diff_trees    extra_trees=extra_trees)
  File "/home/abentley/bzr/bzr.dev/bzrlib/diff.py", line 434, in
_show_diff_trees
    extra_trees=extra_trees, require_versioned=True)
  File "/home/abentley/bzr/bzr.dev/bzrlib/tree.py", line 91, in changes_from
    want_unversioned=want_unversioned,
  File "/home/abentley/bzr/bzr.dev/bzrlib/decorators.py", line 127, in
read_locked
    return unbound(self, *args, **kwargs)
  File "/home/abentley/bzr/bzr.dev/bzrlib/tree.py", line 596, in compare
    want_unversioned=want_unversioned)
  File "/home/abentley/bzr/bzr.dev/bzrlib/delta.py", line 228, in
_compare_trees    want_unversioned=want_unversioned):
  File "/home/abentley/bzr/bzr.dev/bzrlib/workingtree_4.py", line 2165,
in _iter_changes
    current_dir_info = dir_iterator.next()
  File "/home/abentley/bzr/bzr.dev/bzrlib/osutils.py", line 1216, in
_walkdirs_unicode_to_utf8
    for name in sorted(_listdir(top)):
OSError: [Errno 13] Permission denied:
'/home/abentley/configs/web//forms2.r7-6-3/tmp/ziptempAp5BkA'

bzr 0.16.0dev0 on python 2.4.1.final.0 (linux2)
arguments: ['/home/abentley/bin/bzr', 'diff', '-Derror']

Repeat: status works, but diff does not.

Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGL72b0F+nu1YWqI0RAmfeAJ9+WlFYj+DAp1hh+RD2BKSvJNOHfwCdHnt8
9zTB4ZhHwdHEwnRln6z1MMY=
=IHnQ
-----END PGP SIGNATURE-----



More information about the bazaar mailing list