On Thu, 2010-03-11, Greg Stein wrote: > On Thu, Mar 11, 2010 at 02:54, <julianf...@apache.org> wrote: [...] > > +++ subversion/trunk/subversion/libsvn_subr/mergeinfo.c Thu Mar 11 07:54:16 > > 2010 > >... > > @@ -1988,13 +1963,9 @@ svn_mergeinfo__filter_mergeinfo_by_range > > { > > apr_array_header_t *new_rangelist; > > > > - if (include_range) > > - SVN_ERR(svn_rangelist_intersect(&new_rangelist, rangelist, > > - filter_rangelist, FALSE, > > - result_pool)); > > - else > > - SVN_ERR(svn_rangelist_remove(&new_rangelist, > > filter_rangelist, > > - rangelist, FALSE, > > result_pool)); > > + SVN_ERR(rangelist_intersect_or_remove( > > + &new_rangelist, filter_rangelist, rangelist, > > + ! include_range, FALSE, result_pool)); > > The intersect call had (rangelist, filter_rangelist), but the remove > is opposite that. Yet the internal function passes along the one, > consistent ordering. Are you sure that is not a problem? > > IOW, they all end up at rangelist_intersect_or_remove(), but you have > changed the order for the include_range==TRUE (intersect) case.
I'm confident that's correct: intersection is supposed to be symmetrical. I've just had another look, although haven't followed completely through the logic of rangelist_intersect_or_remove() to check for symmetry. Paul, could you review this change for me, please? - Julian