Author: pburba Date: Wed May 25 01:09:45 2011 New Revision: 1127352 URL: http://svn.apache.org/viewvc?rev=1127352&view=rev Log: A partial fix for issue #3896 'mergeinfo syntax errors should be treated gracefully': Allow diff of bogus mergeinfo.
* subversion/libsvn_client/diff.c (display_prop_diffs): If we can't pretty-print mergeinfo differences because invalid mergeinfo is present, then don't let the diff fail, just print the diff as any other property. Modified: subversion/trunk/subversion/libsvn_client/diff.c Modified: subversion/trunk/subversion/libsvn_client/diff.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/diff.c?rev=1127352&r1=1127351&r2=1127352&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_client/diff.c (original) +++ subversion/trunk/subversion/libsvn_client/diff.c Wed May 25 01:09:45 2011 @@ -659,10 +659,21 @@ display_prop_diffs(const apr_array_heade { const char *orig = original_value ? original_value->data : NULL; const char *val = propchange->value ? propchange->value->data : NULL; + svn_error_t *err = display_mergeinfo_diff(orig, val, encoding, + file, pool); - SVN_ERR(display_mergeinfo_diff(orig, val, encoding, file, pool)); - - continue; + /* Issue #3896: If we can't pretty-print mergeinfo differences + because invalid mergeinfo is present, then don't let the diff + fail, just print the diff as any other property. */ + if (err && err->apr_err == SVN_ERR_MERGEINFO_PARSE_ERROR) + { + svn_error_clear(err); + } + else + { + SVN_ERR(err); + continue; + } } {