You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Daniel Shahaf <d....@daniel.shahaf.co.il> on 2008/03/21 10:22:45 UTC

Re: [PATCH] bug(let) in mod_dav_svn: Cannot navigate from repository top to repository list when SVNListParentPath is on.

Forwarding to dev@.

Jan, I can't seem to apply the patch (either to trunk or to 
/tags/1.5.0-beta1).  Could you please resubmit it as an attachment?

Daniel

Jan Nijtmans wrote on Fri, 21 Mar 2008 at 09:30 +0100:
> I'm really sorry to forward this directly to you, but for some reason
> mail from me directly to dev@subversion.tigris.org don't work.
> If you can, please forward it to dev@subversion.tigris.org, so
> it can be handled properly.
>
> Regards,
>
> ---------- Forwarded message ----------
> From: Jan Nijtmans <ja...@gmail.com>
> Date: 20 mrt. 2008 12:38
> Subject: [PATCH] bug(let) in mod_dav_svn: Cannot navigate from
> repository top to repository list when SVNListParentPath is on.
> To: dev@subversion.tigris.org
>
>
> Reproduction recipe.
>
>  - Go with your browser (IE or any other) to the top of any svn repository
>  where SVNListParentPath is set to on, e.g.:
>        <http://svn.webwideconsulting.com/plugins/friendship_plugin/>
>  - Note that the super-directory (/plugins/) is browsable as well, but
>  you cannot navigate to it from here.
>  - I would expect that the first entry of the list is a hyperlinked "..",
>  which would navigate to its super-directory.
>
>  I checked this with the Collabnet win32 build of SVN 1.5.0-beta1,
>  and the buglet is still there.
>
>  Rationale: in repos.c, the decision whether to include the link or not
>  is based on
>  two things:
>  - If repos_path is of length 1 (so it must be "/"), then skip this step
>  - If the collection is of type DAV_SVN_RESTYPE_PARENTPATH_COLLECTION
>    (the highest browsable directory), then skip this step too.
>
>  This can be fixed by ignoring the first condition when
> SVNListParentPath is on.
>  Unfortunately I don't have an environment set up to build mod_dav_svn to test
>  this, but I'm pretty confident that this fix will work (for what's worth).
>
>  Can I file an issue for this? See patch below.
>
>  Regards,
>         Jan Nijtmans
>
>  Here is the patch against svn-1.5.0-beta1 (I re-ordered it a little because
>  dav_svn__get_list_parentpath_flag() is a more expensive test, so it should
>  be done last):
>  ===========================================================================
>  *** subversion/mod_dav_svn/repos.c.orig Fri Mar 14 17:51:28 2008
>  --- subversion/mod_dav_svn/repos.c      Mon Mar 17 12:38:05 2008
>  ***************
>  *** 2805,2812 ****
>            ap_fputs(output, bb, ">\n");
>          }
>
>  !       if ((resource->info->repos_path &&
> resource->info->repos_path[1] != '\0')
>  !           && (resource->info->restype !=
> DAV_SVN_RESTYPE_PARENTPATH_COLLECTION))
>          {
>            if (gen_html)
>              ap_fprintf(output, bb, "  <li><a href=\"../\">..</a></li>\n");
>  --- 2805,2813 ----
>            ap_fputs(output, bb, ">\n");
>          }
>
>  !       if ((resource->info->restype != DAV_SVN_RESTYPE_PARENTPATH_COLLECTION)
>  !           && resource->info->repos_path &&
> ((resource->info->repos_path[1] != '\0')
>  !           || dav_svn__get_list_parentpath_flag(resource->info->r)))
>          {
>            if (gen_html)
>              ap_fprintf(output, bb, "  <li><a href=\"../\">..</a></li>\n");
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org