Noorul Islam K M <noorul_at_collab.net> writes:
> Philip Martin <philip.martin_at_wandisco.com> writes:
>
>> Noorul Islam K M <noorul_at_collab.net> writes:
>>
>>> @@ -79,8 +84,17 @@
>>> {
>>> to = APR_ARRAY_IDX(targets, 1, const char *);
>>>
>>> + /* Get the RA connection. */
>>> + SVN_ERR(svn_client__ra_session_from_path(&ra_session, &revnum,
>>> + &url, truefrom, NULL,
>>> + &peg_revision,
>>> + &(opt_state->start_revision),
>>> + ctx, pool));
>>> +
>>> + SVN_ERR(svn_ra_check_path(ra_session, "", revnum, &kind, pool));
>>> +
>>> /* If given the cwd, pretend we weren't given anything. */
>>> - if (strcmp("", to) == 0)
>>> + if ((strcmp("", to) == 0) && (kind == svn_node_file))
>>> to = svn_path_uri_decode(svn_uri_basename(truefrom, pool), pool);
>>> else
>>> /* svn_cl__eat_peg_revisions() but only on one target */
>>
>> svn_ra_check_path is expensive, as it involves a round trip to the
>> server, and output is not always used. Can we avoid the call when the
>> kind is not needed?
>
> But I think here we need to check kind to branch. Do you mean to say
> that we don't need kind in all cases?
If the call strcpm("", to) returns non-zero then kind is never used.
Including client.h is wrong as well.
--
Philip
Received on 2010-11-01 11:09:58 CET