WorkingTree4._iter_changes traverses unversioned directories

Bug #102537 reported by Aaron Bentley
2
Affects Status Importance Assigned to Milestone
Bazaar
Confirmed
Undecided
Unassigned

Bug Description

In bzr.dev, WorkingTree4._iter_changes traverses unversioned subdirectories. This has bad behavior implications and bad performance implications.

Behavior: The user may not have permission to traverse the unversioned subdirectories. This causes a Permission denied error. This does not occur with WorkingTree3.

Performance: If the unversioned part of the tree is large, Bazaar may spend significant time traversing the unversioned directory. This performance penalty is not necessary: since the directories are unversioned, they can produce no useful information.

abentley@balrog:~/wrelease$ bzr status -Derror M forms2.r7-6-3/clerkrespond.html
 M forms2.r7-6-3/custom/gcl-top-survey.html
 M forms2.r7-6-3/custom/gcl-top.html
 M forms2.r7-6-3/custom/gqi-top.html
 M forms2.r7-6-3/survey/getorg.xml
+N forms2.r7-6-3/survey/intro.html
+N forms2.r7-6-3/survey/intro.xml
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 638, in run_bzr_catch_errors
    return run_bzr(argv)
  File "/home/abentley/bzr/bzr.dev/bzrlib/commands.py", line 600, in run_bzr
    ret = run(*run_argv)
  File "/home/abentley/bzr/bzr.dev/bzrlib/commands.py", line 296, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/abentley/bzr/bzr.dev/bzrlib/commands.py", line 610, in ignore_pipe
    result = func(*args, **kwargs)
  File "/home/abentley/bzr/bzr.dev/bzrlib/builtins.py", line 202, in run
    to_file=self.outf, short=short, versioned=versioned)
  File "/home/abentley/bzr/bzr.dev/bzrlib/status.py", line 153, in show_tree_status
    _mod_delta.report_changes(changes, reporter)
  File "/home/abentley/bzr/bzr.dev/bzrlib/delta.py", line 390, in report_changes
    for (file_id, path, content_change, versioned, parent_id, name, kind,
  File "/home/abentley/bzr/bzr.dev/bzrlib/workingtree_4.py", line 2123, 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', 'status', '-Derror']

** please send this report to <email address hidden>

Aaron Bentley (abentley)
description: updated
Changed in bzr:
status: Unconfirmed → Confirmed
Revision history for this message
John A Meinel (jameinel) wrote :

This was actually fixed as bug #110399, so I'm marking it as a duplicate of that (fixed) bug.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.