On Thu, Jun 2, 2011 at 12:49 PM, <pbu...@apache.org> wrote: > Author: pburba > Date: Thu Jun 2 17:49:36 2011 > New Revision: 1130688 > > URL: http://svn.apache.org/viewvc?rev=1130688&view=rev > Log: > A partial fix for issue #3896 'mergeinfo syntax errors should be treated > gracefully': Tolerate invalid mergeinfo in the repository. > > This allows 'svn mergeinfo' to function in the presence of of invalid > mergeinfo in the repository. It also allows 'svn merge' to function if > invalid mergeinfo is inherited by a merge target and the repository must > be contacted to find this inherited mergeinfo. > > * subversion/libsvn_fs_base/tree.c > > (txn_body_get_mergeinfo_data_and_entries, > txn_body_get_mergeinfo_for_path): If invalid mergeinfo is present on a > node or inherited from a parent node, then ignore it rather than > raising a parse error. > > * subversion/libsvn_fs_fs/tree.c > (crawl_directory_dag_for_mergeinfo, > get_mergeinfo_for_path): Same as above. > > Modified: > subversion/trunk/subversion/libsvn_fs_base/tree.c > subversion/trunk/subversion/libsvn_fs_fs/tree.c > > Modified: subversion/trunk/subversion/libsvn_fs_base/tree.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/tree.c?rev=1130688&r1=1130687&r2=1130688&view=diff > ============================================================================== > --- subversion/trunk/subversion/libsvn_fs_base/tree.c (original) > +++ subversion/trunk/subversion/libsvn_fs_base/tree.c Thu Jun 2 17:49:36 2011 > @@ -5144,6 +5144,7 @@ txn_body_get_mergeinfo_data_and_entries( > apr_hash_t *plist; > svn_mergeinfo_t child_mergeinfo; > svn_string_t *pval; > + svn_error_t *err; > > SVN_ERR(svn_fs_base__dag_get_proplist(&plist, child_node, > trail, iterpool)); > @@ -5157,13 +5158,26 @@ txn_body_get_mergeinfo_data_and_entries( > "mergeinfo but doesn't"), > id_str->data); > } > - SVN_ERR(svn_mergeinfo_parse(&child_mergeinfo, pval->data, > - result_pool)); > - apr_hash_set(args->result_catalog, > - svn_fspath__join(args->node_path, dirent->name, > - result_pool), > - APR_HASH_KEY_STRING, > - child_mergeinfo); > + /* Issue #3896: If syntactically invalid mergeinfo is present on > + CHILD_NODE then treat it as if no mergeinfo is present rather > + than raising a parse error. */ > + err = svn_mergeinfo_parse(&child_mergeinfo, pval->data, > + result_pool); > + if (err) > + { > + if (err->apr_err == SVN_ERR_MERGEINFO_PARSE_ERROR) > + svn_error_clear(err); > + else > + svn_error_return(err);
This should be 'return svn_error_return(err);' As it is, this error is just falling on the floor, and causing the current buildbot failures. > ... -Hyrum