On Mon, Mar 02, 2009 at 03:11:09AM -0800, Bert Huijben wrote:
> Author: rhuijben
> Date: Mon Mar 2 03:11:09 2009
> New Revision: 36241
>
> Log:
> As part of issue issue #2028 and following up on r36235:
>
> * subversion/libsvn_wc/status.c
> (assemble_status): Use the new svn_uri_join instead of svn_path_join.
> * subversion/libsvn_wc/update_editor.c
> (get_entry_url): Use svn_dirent_join instead of svn_path_join_many.
>
> Modified:
> trunk/subversion/libsvn_wc/status.c
> trunk/subversion/libsvn_wc/update_editor.c
This commit caused tons of failing tests for me (over svn:// with a 1.5
svnserve, but I'd say it also applies to other RA methods).
I would try to fix but have no time right now.
gdb session and relevant svn blame output below.
Stefan
(gdb) bt
#0 0x00e03ae9 in strlen () from /usr/lib/libc.so.50.1
#1 0x1c112a4c in svn_dirent_join (base=0x86a3c098 "svn-test-work/working_copies/switch_tests-31",
component=0x0, pool=0x86a3c018) at subversion/libsvn_subr/dirent_uri.c:746
#2 0x1c06df04 in get_entry_url (associated_access=0x877a0940,
dir=0x86a3c098 "svn-test-work/working_copies/switch_tests-31", name=0x0, pool=0x86a3c018)
at subversion/libsvn_wc/update_editor.c:430
#3 0x1c06e257 in make_dir_baton (d_p=0xcfbf7b48, path=0x0, eb=0x8bbab090, pb=0x0, added=0, pool=0x86a3c018)
at subversion/libsvn_wc/update_editor.c:572
#4 0x1c06f204 in open_root (edit_baton=0x8bbab090, base_revision=1, pool=0x86a3c018, dir_baton=0x86a3c054)
at subversion/libsvn_wc/update_editor.c:1242
#5 0x1c1059d1 in open_root (edit_baton=0x8a010ab8, base_revision=1, pool=0x86a3c018, root_baton=0xcfbf7ba8)
at subversion/libsvn_delta/cancel.c:67
#6 0x1c0d763b in ra_svn_handle_open_root (conn=0x809d9018, pool=0x86a3e018, params=0x86a3e0d8, ds=0xcfbf7bf0)
at subversion/libsvn_ra_svn/editorp.c:481
#7 0x1c0d8715 in svn_ra_svn_drive_editor2 (conn=0x809d9018, pool=0x8a00f018, editor=0x8a010a78,
edit_baton=0x8a010ab8, aborted=0x0, for_replay=0) at subversion/libsvn_ra_svn/editorp.c:884
#8 0x1c0cfd42 in ra_svn_finish_report (baton=0x8a010c00, pool=0x8a00f018)
at subversion/libsvn_ra_svn/client.c:274
#9 0x1c0460b8 in svn_wc_crawl_revisions4 (path=0x8b169eb0 "svn-test-work/working_copies/switch_tests-31",
adm_access=0x877a0940, reporter=0x3c04a3dc, report_baton=0x8a010c00, restore_files=1,
depth=svn_depth_infinity, honor_depth_exclude=0, depth_compatibility_trick=0, use_commit_times=0,
notify_func=0x1c01109a <notify>, notify_baton=0x8b169ee0, traversal_info=0x877a0748, pool=0x8a00f018)
at subversion/libsvn_wc/adm_crawler.c:746
#10 0x1c04409d in svn_client__update_internal (result_rev=0x0,
path=0x8b169eb0 "svn-test-work/working_copies/switch_tests-31", revision=0xcfbf7f30,
depth=svn_depth_infinity, depth_is_sticky=1, ignore_externals=0, allow_unver_obstructions=0,
timestamp_sleep=0xcfbf7e8c, send_copyfrom_args=0, ctx=0x83384e70, pool=0x8a00f018)
at subversion/libsvn_client/update.c:263
#11 0x1c01c499 in svn_client__checkout_internal (result_rev=0x0,
url=0x8a00f090 "svn://localhost/svn-test-work/repositories/switch_tests-31",
path=0x8b169eb0 "svn-test-work/working_copies/switch_tests-31", peg_revision=0xcfbf7f20,
revision=0xcfbf7f30, ra_cache=0x0, depth=svn_depth_infinity, ignore_externals=0,
allow_unver_obstructions=0, timestamp_sleep=0x0, ctx=0x83384e70, pool=0x8a00f018)
at subversion/libsvn_client/checkout.c:169
#12 0x1c01c6b5 in svn_client_checkout3 (result_rev=0x0,
URL=0x8a00f050 "svn://localhost/svn-test-work/repositories/switch_tests-31",
path=0x8b169eb0 "svn-test-work/working_copies/switch_tests-31", peg_revision=0xcfbf7f20,
---Type <return> to continue, or q <return> to quit---
revision=0xcfbf7f30, depth=svn_depth_unknown, ignore_externals=0, allow_unver_obstructions=0,
ctx=0x83384e70, pool=0x8a00f018) at subversion/libsvn_client/checkout.c:246
#13 0x1c007c67 in svn_cl__checkout (os=0x833841b8, baton=0xcfbf804c, pool=0x83384018)
at subversion/svn/checkout-cmd.c:160
#14 0x1c00fe74 in main (argc=11, argv=0xcfbf8220) at subversion/svn/main.c:2123
(gdb) up
#1 0x1c112a4c in svn_dirent_join (base=0x86a3c098 "svn-test-work/working_copies/switch_tests-31",
component=0x0, pool=0x86a3c018) at subversion/libsvn_subr/dirent_uri.c:746
746 apr_size_t clen = strlen(component);
(gdb) list
741 char *svn_dirent_join(const char *base,
742 const char *component,
743 apr_pool_t *pool)
744 {
745 apr_size_t blen = strlen(base);
746 apr_size_t clen = strlen(component);
747 char *dirent;
748 int add_separator;
749
750 assert(svn_dirent_is_canonical(base, pool));
(gdb) p component
$1 = 0x0
(gdb) up
#2 0x1c06df04 in get_entry_url (associated_access=0x877a0940,
dir=0x86a3c098 "svn-test-work/working_copies/switch_tests-31", name=0x0, pool=0x86a3c018)
at subversion/libsvn_wc/update_editor.c:430
430 err = svn_wc_entry(&entry, svn_dirent_join(dir, name, pool),
(gdb) p dir
$2 = 0x86a3c098 "svn-test-work/working_copies/switch_tests-31"
(gdb) p name
$3 = 0x0
(gdb) p pool
$4 = (apr_pool_t *) 0x86a3c018
(gdb) list
425 err = svn_wc_adm_retrieve(&adm_access, associated_access, dir, pool);
426
427 if (! err)
428 {
429 /* Note that `name' itself may be NULL. */
430 err = svn_wc_entry(&entry, svn_dirent_join(dir, name, pool),
431 adm_access, FALSE, pool);
432 }
433 if (err || (! entry) || (! entry->url))
434 {
(gdb)
4092 cmpilato if (! err)
4092 cmpilato {
4092 cmpilato /* Note that `name' itself may be NULL. */
36241 rhuijben err = svn_wc_entry(&entry, svn_dirent_join(dir, name, pool),
18471 kfogel adm_access, FALSE, pool);
4092 cmpilato }
>
> Modified: trunk/subversion/libsvn_wc/status.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/status.c?pathrev=36241&r1=36240&r2=36241
> ==============================================================================
> --- trunk/subversion/libsvn_wc/status.c Mon Mar 2 02:20:04 2009 (r36240)
> +++ trunk/subversion/libsvn_wc/status.c Mon Mar 2 03:11:09 2009 (r36241)
> @@ -281,7 +281,7 @@ assemble_status(svn_wc_status2_t **statu
> if (entry && entry->url)
> abs_path = entry->url + strlen(repos_root);
> else if (parent_entry && parent_entry->url)
> - abs_path = svn_path_join(parent_entry->url + strlen(repos_root),
> + abs_path = svn_uri_join(parent_entry->url + strlen(repos_root),
> svn_dirent_basename(path, pool), pool);
> else
> abs_path = NULL;
>
> Modified: trunk/subversion/libsvn_wc/update_editor.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/update_editor.c?pathrev=36241&r1=36240&r2=36241
> ==============================================================================
> --- trunk/subversion/libsvn_wc/update_editor.c Mon Mar 2 02:20:04 2009 (r36240)
> +++ trunk/subversion/libsvn_wc/update_editor.c Mon Mar 2 03:11:09 2009 (r36241)
> @@ -427,7 +427,7 @@ get_entry_url(svn_wc_adm_access_t *assoc
> if (! err)
> {
> /* Note that `name' itself may be NULL. */
> - err = svn_wc_entry(&entry, svn_path_join_many(pool, dir, name, NULL),
> + err = svn_wc_entry(&entry, svn_dirent_join(dir, name, pool),
> adm_access, FALSE, pool);
> }
> if (err || (! entry) || (! entry->url))
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=495&dsMessageId=1255833
Received on 2009-03-02 13:14:28 CET