I've been poking around import, and I discovered this snippet of
decade-old code:

  /* The repository doesn't know about the reserved administrative
     directory. */
  if (new_entries->nelts
      /* What's this, what's this?  This assignment is here because we
         use the value to construct the error message just below.  It
         may not be aesthetically pleasing, but it's less ugly than
         calling APR_ARRAY_IDX twice. */
      && svn_wc_is_adm_dir(temp = APR_ARRAY_IDX(new_entries,
                                                new_entries->nelts - 1,
                                                const char *),
                           scratch_pool))
    return svn_error_createf
      (SVN_ERR_CL_ADM_DIR_RESERVED, NULL,
       _("'%s' is a reserved name and cannot be imported"),
       svn_dirent_local_style(temp, scratch_pool));

new_entries is the list of basenames of to-be-created parents (similar
to what happens with 'mkdir --parents').  It appears this is a very
specific check that if the second-to-last of those basenames is the wc
admin directory, don't do the import.

I'm trying to figure out if this is still a valid check.  It feels
like it's looking at a very specific case, and there are any number of
ways a determined user to circumvent this check.  And even if they
did, it's not illegal, folks would just end up with '.svn' in the
repository.

It feels like this is just a relic of a bygone era when users were
still experimenting with Subversion, and I just have a hard time
seeing it as needed these days.

Thoughts?

-Hyrum


-- 

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

Reply via email to