> Fix crash in svn status -u when an unversioned and ignored directory
> is in the repository.
> Found by: Stefan Küng <email@example.com>
> * subversion/libsvn_wc/status.c (make_dir_baton): Don't try to get status
> of ignored directory.
> * subversion/tests/cmdline/stat_tests.py
> (status_ignored_dir): New test.
> (test_list): Run it.
The log says the crash happens "when an unversioned and ignored
directory is in the repository".
First, did you mean "working copy" instead of "repository"? :-)
Second, a question about the code, see below...
> --- trunk/subversion/libsvn_wc/status.c (original)
> +++ trunk/subversion/libsvn_wc/status.c Mon Jan 30 08:32:54 2006
> @@ -1155,13 +1155,14 @@
> /* Order is important here. We can't depend on parent_status->entry
> being non-NULL until after we've checked all the conditions that
> might indicate that the parent is unversioned ("unversioned" for
> - our purposes includes being an external). */
> + our purposes includes being an external or ignored item). */
> if (parent_status
> && (parent_status->text_status != svn_wc_status_unversioned)
> && (parent_status->text_status != svn_wc_status_deleted)
> && (parent_status->text_status != svn_wc_status_missing)
> && (parent_status->text_status != svn_wc_status_obstructed)
> && (parent_status->text_status != svn_wc_status_external)
> + && (parent_status->text_status != svn_wc_status_ignored)
> && (parent_status->entry->kind == svn_node_dir)
> && (eb->descend || (! pb)))
This conditional gets the entry's status if parent_status is *neither*
unversioned nor ignored. Is it the case that if an object is both
ignored and unversioned, its text_status will be 'ignored' not
'unversioned'? In other words, the crash was happening because even
though the item *was* unversioned, the 'ignore' part dominated, so the
text_status said nothing about its being unversioned?
(I have no objection to the solution, I just want to make sure I
understand what's going on.)
www.collab.net <> CollabNet | Distributed Development On Demand
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com
Received on Mon Jan 30 16:52:10 2006