Index: subversion/libsvn_client/export.c =================================================================== --- subversion/libsvn_client/export.c (revision 6659) +++ subversion/libsvn_client/export.c (working copy) @@ -44,6 +44,7 @@ static svn_error_t * copy_versioned_files (const char *from, const char *to, + svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool) { @@ -68,7 +69,13 @@ SVN_ERR (svn_io_stat (&finfo, from, APR_FINFO_PROT, subpool)); - SVN_ERR (svn_io_dir_make (to, finfo.protection, subpool)); + err = svn_io_dir_make (to, finfo.protection, subpool); + if (err && APR_STATUS_IS_EEXIST (err->apr_err) && !force) + SVN_ERR_W (err, + "Destination directory exists. Please remove\n" + "the directory, use --force to ovewrite."); + else if (err && !APR_STATUS_IS_EEXIST (err->apr_err)) + SVN_ERR (err); SVN_ERR (svn_io_get_dirents (&dirents, from, pool)); @@ -101,7 +108,7 @@ const char *new_from = svn_path_join (from, key, subpool); const char *new_to = svn_path_join (to, key, subpool); - SVN_ERR (copy_versioned_files (new_from, new_to, + SVN_ERR (copy_versioned_files (new_from, new_to, force, ctx, subpool)); } } @@ -253,7 +260,7 @@ else { /* just copy the contents of the working copy into the target path. */ - SVN_ERR (copy_versioned_files (from, to, ctx, pool)); + SVN_ERR (copy_versioned_files (from, to, force, ctx, pool)); } return SVN_NO_ERROR;