Followup to r1030010 Log
[[[ Canonicalize paths before passing them to svn_client_list2. * subversion/svn/list-cmd.c (svn_cl__list): Canonicalize url or dirent before passing over to API. * subversion/tests/cmdline/basic_tests.py (ls_url_special_characters, test_list): New test Patch by: Noorul Islam K M <noorul{_AT_}collab.net> ]]]
Index: subversion/svn/list-cmd.c =================================================================== --- subversion/svn/list-cmd.c (revision 1032461) +++ subversion/svn/list-cmd.c (working copy) @@ -271,6 +271,11 @@ SVN_ERR(svn_opt_parse_path(&peg_revision, &truepath, target, subpool)); + if (svn_path_is_url(truepath)) + truepath = svn_uri_canonicalize(truepath, subpool); + else + truepath = svn_dirent_canonicalize(truepath, subpool); + if (opt_state->xml) { svn_stringbuf_t *sb = svn_stringbuf_create("", pool); Index: subversion/tests/cmdline/basic_tests.py =================================================================== --- subversion/tests/cmdline/basic_tests.py (revision 1032461) +++ subversion/tests/cmdline/basic_tests.py (working copy) @@ -2671,6 +2671,19 @@ sbox.repo_url + '/C spaced', '-m', 'Deleted B and C') +def ls_url_special_characters(sbox): + """special characters in svn ls URL""" + sbox.build(create_wc = False) + + special_urls = [sbox.repo_url + '/A' + '/%2E', + sbox.repo_url + '%2F' + 'A'] + + for url in special_urls: + svntest.actions.run_and_verify_svn('ls URL with special characters', + ['B/\n', 'C/\n', 'D/\n', 'mu\n'], + [], 'ls', + url) + ######################################################################## # Run the tests @@ -2732,6 +2745,7 @@ delete_child_parent_update, basic_relocate, delete_urls_with_spaces, + ls_url_special_characters, ] if __name__ == '__main__':