Index: subversion/libsvn_client/export.c =================================================================== --- subversion/libsvn_client/export.c (revision 20025) +++ subversion/libsvn_client/export.c (working copy) @@ -363,7 +363,7 @@ SVN_ERR(svn_io_check_path(path, &kind, pool)); if (kind == svn_node_none) - SVN_ERR(svn_io_dir_make(path, APR_OS_DEFAULT, pool)); + SVN_ERR(svn_io_make_dir_recursively(path, pool)); else if (kind == svn_node_file) return svn_error_createf(SVN_ERR_WC_NOT_DIRECTORY, NULL, _("'%s' exists and is not a directory"), Index: subversion/tests/cmdline/export_tests.py =================================================================== --- subversion/tests/cmdline/export_tests.py (revision 20025) +++ subversion/tests/cmdline/export_tests.py (working copy) @@ -370,6 +370,22 @@ expected_output, expected_disk) +def export_creates_intermediate_folders(sbox): + "export and create some intermediate folders" + sbox.build(create_wc = False) + + svntest.main.safe_rmtree(sbox.wc_dir) + export_target = os.path.join(sbox.wc_dir, 'a', 'b', 'c') + expected_output = svntest.main.greek_state.copy() + expected_output.wc_dir = export_target + expected_output.desc[''] = Item() + expected_output.tweak(contents=None, status='A ') + + svntest.actions.run_and_verify_export(svntest.main.current_repo_url, + export_target, + expected_output, + svntest.main.greek_state.copy()) + ######################################################################## # Run the tests @@ -390,6 +406,7 @@ export_nonexistent_file, export_unversioned_file, export_with_state_deleted, + export_creates_intermediate_folders, ] if __name__ == '__main__':