David Glasser wrote:
>> + /* If the child has mergeinfo, add it to the result catalog. */
>> + if (has_mergeinfo)
>> + {
>> + apr_hash_t *plist, *child_mergeinfo_hash;
>> + svn_string_t *pval;
>> +
>> + SVN_ERR(svn_fs_base__dag_get_proplist(&plist, child_node,
>> + trail, iterpool));
>> + pval = apr_hash_get(plist, SVN_PROP_MERGEINFO, APR_HASH_KEY_STRING);
>> + if (! pval)
>> + {
>> + svn_string_t *id_str = svn_fs_base__id_unparse(child_id,
>> + iterpool);
>> + return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
>> + _("Node-revision '%s' claims to have "
>> + "mergeinfo but doesn't"),
>> + id_str->data);
>> + }
>> + SVN_ERR(svn_mergeinfo_parse(&child_mergeinfo_hash, pval->data,
>> + result_pool));
>> + apr_hash_set(args->result_catalog,
>> + svn_path_join(args->node_path, dirent->name,
>> + result_pool),
>> + APR_HASH_KEY_STRING,
>> + child_mergeinfo_hash);
>> + }
>> +
>> + /* Otherwise, if the child has descendants with mergeinfo, add
>> + it to the children_atop_mergeinfo_trees hash. */
>> + else if (kid_count > 0)
>
> I don't think this "else" here is correct.
Hrm. Oh! Does the code not cover the case where the item itself has
mergeinfo *and* sits atop a tree of more mergeinfo?
--
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Received on 2008-01-25 19:52:32 CET