This also needs a back-port to the 1.6.x branch. [[[ Fix issue #3789: Correctly ignore missing locations when a renamed file has more than MAX_OPEN_HISTORIES.
* subversion/libsvn_repos/log.c (get_path_histories): Ignore more bogus repository locations to restore pre-1.6.15 log -g behavior. This fixes client chunk errors introduced by r1028108. ]]] Index: subversion/libsvn_repos/log.c =================================================================== --- subversion/libsvn_repos/log.c (revision 1063904) +++ subversion/libsvn_repos/log.c (working copy) @@ -1052,6 +1052,7 @@ { svn_fs_root_t *root; apr_pool_t *iterpool; + svn_error_t *err; int i; /* Create a history object for each path so we can walk through @@ -1093,7 +1094,6 @@ if (i < MAX_OPEN_HISTORIES) { - svn_error_t *err; err = svn_fs_node_history(&info->hist, root, this_path, pool); if (err && ignore_missing_locations @@ -1115,10 +1115,20 @@ info->newpool = NULL; } - SVN_ERR(get_history(info, fs, - strict_node_history, - authz_read_func, authz_read_baton, - hist_start, pool)); + err = get_history(info, fs, + strict_node_history, + authz_read_func, authz_read_baton, + hist_start, pool); + if (err + && ignore_missing_locations + && (err->apr_err == SVN_ERR_FS_NOT_FOUND || + err->apr_err == SVN_ERR_FS_NOT_DIRECTORY || + err->apr_err == SVN_ERR_FS_NO_SUCH_REVISION)) + { + svn_error_clear(err); + continue; + } + SVN_ERR(err); APR_ARRAY_PUSH(*histories, struct path_info *) = info; } svn_pool_destroy(iterpool);