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/