[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r36241 - trunk/subversion/libsvn_wc

From: Stefan Sperling <stsp_at_elego.de>
Date: Mon, 2 Mar 2009 12:14:03 +0000

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

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.