Yes, that's what I meant, but I see that Philip already committed a fix. Question to FS people:
Is the svn_fs_history_location(svn_fs_history_prev()) approach equivalent to the svn_fs_copied_from() approach? Stefan Sperling wrote on Thu, Nov 18, 2010 at 11:51:19 +0100: > On Thu, Nov 18, 2010 at 06:34:30AM +0200, Daniel Shahaf wrote: > > Daniel Shahaf wrote on Thu, Nov 18, 2010 at 06:07:07 +0200: > > > + SVN_ERR(svn_fs_node_history(&history, copyto_root, copyto_path, pool)); > > > + SVN_ERR(svn_fs_history_prev(&history_prev, history, TRUE /* cross > > > copies */, > > > + pool)); > > > + SVN_ERR(svn_fs_history_location(copyfrom_path_p, copyfrom_rev_p, > > > + history_prev, pool)); > > > > Tests running (trunk plus the patch). > > > > > > But perhaps I should have used this function instead: > > > > 1439 svn_error_t * > > 1440 svn_fs_copied_from(svn_revnum_t *rev_p, > > 1441 const char **path_p, > > 1442 svn_fs_root_t *root, > > 1443 const char *path, > > 1444 apr_pool_t *pool); > > You mean like this? Seems to work here. > > Index: subversion/libsvn_repos/replay.c > =================================================================== > --- subversion/libsvn_repos/replay.c (revision 1036389) > +++ subversion/libsvn_repos/replay.c (working copy) > @@ -225,10 +225,14 @@ add_subdir(svn_fs_root_t *source_root, > continue; > else if (change->change_kind == svn_fs_path_change_replace) > { > - /* ### Can this assert fail? */ > - SVN_ERR_ASSERT(change->copyfrom_known); > - copyfrom_path = change->copyfrom_path; > - copyfrom_rev = change->copyfrom_rev; > + if (change->copyfrom_known) > + { > + copyfrom_path = change->copyfrom_path; > + copyfrom_rev = change->copyfrom_rev; > + } > + else > + SVN_ERR(svn_fs_copied_from(©from_rev, ©from_path, > + target_root, new_path, pool)); > } > } >