On Sun, 19 Jun 2005, Philip Martin wrote:
> "Peter N. Lundblad" <peter@famlundblad.se> writes:
>
> > Ouch! How could I miss that? A missing SVN_ERR (err). I'll fix tomorrow
> > morning.
>
> That's not enough, checkout will fail, yes checkout! If the file is
> unversioned the new code gets SVN_ERR_ENTRY_NOT_FOUND but only handles
> ENOENT.
>
> +++ subversion/libsvn_wc/questions.c (working copy)
> @@ -398,13 +398,16 @@
> err = svn_wc__timestamps_equal_p (&equal_timestamps,
> filename, adm_access,
> svn_wc__text_time, subpool);
> - if (err && APR_STATUS_IS_ENOENT(err->apr_err))
> + if (err && (APR_STATUS_IS_ENOENT(err->apr_err)
> + || err->apr_err == SVN_ERR_ENTRY_NOT_FOUND))
> {
> /* If the file doesn't exist, its considered non-modified. */
> svn_error_clear (err);
> *modified_p = FALSE;
> goto cleanup;
> }
> + else if (err)
> + return err;
> if (equal_timestamps)
> {
> *modified_p = FALSE;
>
> I think the old code did a stat() before checking whether the file was
Yes, the old code did svn_io_check_path before. That was the "stat" I
eliminated in this function.
> versioned, so it didn't see SVN_ERR_ENTRY_NOT_FOUND if the file did
> not exist and returned no error. If the file was unversioned but did
> exist then I think SVN_ERR_ENTRY_NOT_FOUND was returned. The
> libsvn_wc code is so complicated it's not clear whether this was
> accidental or deliberate, and it's not clear whether that exact
OK. I didn't think of that case. I'll commit the patch above tommorrow if
you don't.
> behaviour needs to be reproduced. Welcome to libsvn_wc!
>
Yeah, I was warned this was complicated and messy. I want to get rid of
some of the worst performance problems. I think I do it early enough in
the 1.3 cycle to catch regressions before releas.e If you have time, I
appreciate any reviews in this area (and all other areas as well, only if
I try not to read mail to early in the morning:-).
Regards,
//Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jun 20 00:05:23 2005