You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Bert Huijben <be...@qqmail.nl> on 2011/08/31 16:24:49 UTC

RE: svn commit: r1163296 - in /subversion/trunk/subversion/libsvn_client: client.h diff.c merge.c repos_diff.c


> -----Original Message-----
> From: julianfoad@apache.org [mailto:julianfoad@apache.org]
> Sent: dinsdag 30 augustus 2011 19:23
> To: commits@subversion.apache.org
> Subject: svn commit: r1163296 - in
> /subversion/trunk/subversion/libsvn_client: client.h diff.c merge.c
> repos_diff.c
> 
> Author: julianfoad
> Date: Tue Aug 30 17:23:08 2011
> New Revision: 1163296
> 
> URL: http://svn.apache.org/viewvc?rev=1163296&view=rev
> Log:
> Remove knowledge of the WC from the client's repos-repos diff editor.  This
> knowledge was only used as a convenience by the merge code, to provide
> ready-made WC abspaths into its callbacks, and was not used at all by the
> diff code that is the other client of this editor.

This patch causes merge_authz_tests.py 1 "skipped paths get overriding mergeinfo" to fail on ra_serf. (See the svn-slik-w2k3-x64-ra buildbot).

	Bert


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



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

Posted by Greg Stein <gs...@gmail.com>.
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

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

Posted by Julian Foad <ju...@wandisco.com>.
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.

Bert and/or I will look into this tomorrow.

- Julian



Re: svn commit: r1163296 - in /subversion/trunk/subversion/libsvn_client: client.h diff.c merge.c repos_diff.c

Posted by Julian Foad <ju...@wandisco.com>.
I (Julian Foad) wrote:
> Philip Martin wrote:
> > "Bert Huijben" <be...@qqmail.nl> writes:
> > 
> > > This patch causes merge_authz_tests.py 1 "skipped paths get overriding
> > > mergeinfo" to fail on ra_serf. (See the svn-slik-w2k3-x64-ra
> > > buildbot).
> > 
> > It also fails on Linux with serf.
> 
> I'm looking into this now.

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.

- Julian



Re: svn commit: r1163296 - in /subversion/trunk/subversion/libsvn_client: client.h diff.c merge.c repos_diff.c

Posted by Julian Foad <ju...@wandisco.com>.
Philip Martin wrote:
> "Bert Huijben" <be...@qqmail.nl> writes:
> 
> > This patch causes merge_authz_tests.py 1 "skipped paths get overriding
> > mergeinfo" to fail on ra_serf. (See the svn-slik-w2k3-x64-ra
> > buildbot).
> 
> It also fails on Linux with serf.

I'm looking into this now.

- Julian



Re: svn commit: r1163296 - in /subversion/trunk/subversion/libsvn_client: client.h diff.c merge.c repos_diff.c

Posted by Philip Martin <ph...@wandisco.com>.
"Bert Huijben" <be...@qqmail.nl> writes:

> This patch causes merge_authz_tests.py 1 "skipped paths get overriding
> mergeinfo" to fail on ra_serf. (See the svn-slik-w2k3-x64-ra
> buildbot).

It also fails on Linux with serf.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com