[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn trunk r15103: FAIL (x86_64-unknown-linux-gnu shared ra_local bdb)

From: Philip Martin <philip_at_codematters.co.uk>
Date: 2005-06-19 23:08:17 CEST

"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 (revision 15111)
+++ 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
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
behaviour needs to be reproduced. Welcome to libsvn_wc!

-- 
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Jun 19 23:09:36 2005

This is an archived mail posted to the Subversion Dev mailing list.