Stephen Oberholtzer <stevieo@tigris.org>


Patch
r865057

r865057 | hwright | 2007-05-10 05:02:08 +0000 (Thu, 10 May 2007)

Fix part of issue 1776:  Allow 'svn mkdir' to make intermediate
directories.

Patch by: Stephen Oberholtzer <stevieo@tigris.org>
          me

* subversion/svn/cl.h
  (svn_cl__longopt_t): Add svn_cl__make_parents_opt.
  (svn_cl__opt_state_t): Add make_parents flag.

* subversion/svn/mkdir-cmd.c
  (svn_cl__mkdir): Pass the make_parents flag to the client library.

* subversion/svn/main.c
  (svn_cl__cmd_table): Accept the make-parents flag for 'svn mkdir'.

* subversion/include/svn_client.h
  (svn_client_mkdir3): New.  Add the make_parents flag.
  (svn_client_mkdir2): Deprecate.

* subversion/libsvn_client/add.c
  (add_url_parents): New function.
  (mkdir_urls): Take the make parents flag, and if true, add any lacking
  parents to the list of targets.
  (make_wc_subdir): New function.
  (svn_client_mkdir3): New function.  In the local case, instead of creating
  the directories directly, use a recursive helper function.
  (svn_client_mkdir2): Implement as a thin wrapper.

* subversion/tests/cmdline/basic_tests.py
  (basic_mkdir_url_with_parents, basic_mkdir_wc_with_parents): New tests.
  (test_list): Run the new tests.