Josef Wolf <jw@raven.inka.de> writes:
> > I honestly don't know. Want to add the code and run 'make check', see
> > what happens? (I'm not sure exactly what change you're proposing.)
>
> I had something like this in mind:
>
> Index: subversion/libsvn_wc/entries.c
> ===================================================================
> --- subversion/libsvn_wc/entries.c (revision 4388)
> +++ subversion/libsvn_wc/entries.c (working copy)
> @@ -649,6 +649,10 @@
> }
> }
>
> + if (kind == svn_node_unknown)
> + return svn_error_createf
> + (SVN_ERR_NODE_UNKNOWN_KIND, NULL, "Unknown kind for \"%s\"", path);
> +
> if (kind != svn_node_dir || ! is_wc)
> {
> /* Maybe we're here because PATH is an unversioned directory, in
>
> This would fix not only the edge-case you fixed in r4347. In addition,
> this would catch _all_ attempts to fiddle around with unknown file types
> (e.g. symlinks) in the entries file. In addition to the edge-case you
> fixed in r4347, it would for example catch the following:
Oh, I see what you mean now.
The reason we don't want to depend on svn_wc_entry() is that it may
not always check the path on disk -- it's kind of a fluke that it does
so right now. Strictly speaking, svn_wc_entry() is about fetching the
entry from the entries file; in theory, it could completely ignore the
path on disk and still be correct.
(I can't remember why it currently examines the path, but I'm positive
the reason is not anything core to entry functionality. Notice, for
example, that svn_wc_entry_t doesn't hold any information that would
require knowledge of the item, beyond what the entry itself says).
-Karl
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jan 16 06:21:15 2003