On Thu, Feb 23, 2012 at 10:47:14PM +0100, Bert Huijben wrote:
> > @@ -1111,13 +1111,38 @@ get_dir_status(const struct walk_status_
> >      {
> >        /* Handle "this-dir" first. */
> >        if (! skip_this_dir)
> > -        SVN_ERR(send_status_structure(wb, local_abspath,
> > -                                      parent_repos_root_url,
> > -                                      parent_repos_relpath,
> > -                                      parent_repos_uuid,
> > -                                      dir_info, dirent, get_all,
> > -                                      status_func, status_baton,
> > -                                      iterpool));
> > +        {
> > +#ifdef HAVE_SYMLINK
> > +          if (dirent->special)
> > +            {
> > +              svn_io_dirent2_t *this_dirent = svn_io_dirent2_dup(dirent,
> > +                                                                 iterpool);
> > +
> > +              /* We're being pointed to "this-dir" via a symlink.
> > +               * Get the real node kind and pretend the path is not a 
> > symlink.
> > +               * This prevents send_status_structure() from treating 
> > this-dir
> > +               * as a directory obstructed by a file. */
> > +              SVN_ERR(svn_io_check_resolved_path(local_abspath,
> > +                                                 &this_dirent->kind, 
> > iterpool));
> > +              this_dirent->special = FALSE;
> > +              SVN_ERR(send_status_structure(wb, local_abspath,
> > +                                            parent_repos_root_url,
> > +                                            parent_repos_relpath,
> > +                                            parent_repos_uuid,
> > +                                            dir_info, this_dirent, get_all,
> > +                                            status_func, status_baton,
> > +                                            iterpool));
> 
> This doesn't look like the right function to apply this fix. This function is 
> called for all subdirectories as well, while your fix should only apply to 
> the root?

You're right. Thanks for checking.

This code is quite different on trunk, and I didn't carefully check
the recursive nature of the 1.7.x code while backporting this.

Should be fixed by r1293080.

Reply via email to