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.