You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Greg Stein <gs...@gmail.com> on 2011/09/01 16:18:41 UTC

Re: RA-serf inconsistency calling editor:absent_file/dir [was: svn commit: r1163296 ...]

On Wed, Aug 31, 2011 at 17:06, Julian Foad <ju...@wandisco.com> wrote:
> I (Julian Foad) wrote:
>> Fixed in r1163704 (plus fat-finger follow-ups r1163707 and r1163711).
>>
>> static svn_error_t *
>> absent_file(const char *path,
>>             void *parent_baton,
>>             apr_pool_t *pool)
>> {
>>   struct dir_baton *pb = parent_baton;
>>
>>   /* ### This 'join ... basename' works around an inconsistency whereby
>>    * RA-serf gives PATH as just the basename instead of the full path. */
>>   [...] svn_dirent_join(pb->path,
>>                         svn_relpath_basename(path, NULL),
>>                         pool) [...]
>> }
>>
>> This restored a work-around for an inconsistency in RA-serf, which I
>> removed, having no idea that's what it was.  Now I've added comments
>> explaining it.
>>
>> The inconsistency is that when RA-serf calls
>> svn_delta_editor_t.absent_directory() or .absent_file() it passes 'path'
>> as a whole path (relative to the root of the edit drive?) whereas
>> RA-neon and RA-svn pass just the basename of the directory or file.

Just to clarify because the commit showed ra_serf passed a *basename*
and the others passed a path. So: the paragraph just above is
backwards from your intent?

Cheers,
-g

Re: RA-serf inconsistency calling editor:absent_file/dir [was: svn commit: r1163296 ...]

Posted by Julian Foad <ju...@wandisco.com>.
On Thu, 2011-09-01 at 10:18 -0400, Greg Stein wrote:
> On Wed, Aug 31, 2011 at 17:06, Julian Foad <ju...@wandisco.com> wrote:
> > I (Julian Foad) wrote:
> >> Fixed in r1163704 (plus fat-finger follow-ups r1163707 and r1163711).
> >>
> >> static svn_error_t *
> >> absent_file(const char *path,
> >>             void *parent_baton,
> >>             apr_pool_t *pool)
> >> {
> >>   struct dir_baton *pb = parent_baton;
> >>
> >>   /* ### This 'join ... basename' works around an inconsistency whereby
> >>    * RA-serf gives PATH as just the basename instead of the full path. */
> >>   [...] svn_dirent_join(pb->path,
> >>                         svn_relpath_basename(path, NULL),
> >>                         pool) [...]
> >> }
> >>
> >> This restored a work-around for an inconsistency in RA-serf, which I
> >> removed, having no idea that's what it was.  Now I've added comments
> >> explaining it.
> >>
> >> The inconsistency is that when RA-serf calls
> >> svn_delta_editor_t.absent_directory() or .absent_file() it passes 'path'
> >> as a whole path (relative to the root of the edit drive?) whereas
> >> RA-neon and RA-svn pass just the basename of the directory or file.
> 
> Just to clarify because the commit showed ra_serf passed a *basename*
> and the others passed a path. So: the paragraph just above is
> backwards from your intent?

Oops, yes, you're right, it was the other way around.  Thanks.

- Julian