Author: stsp Date: Fri Sep 16 14:39:33 2016 New Revision: 1761041 URL: http://svn.apache.org/viewvc?rev=1761041&view=rev Log: * subversion/libsvn_client/conflicts.c (find_deleted_rev): Ignore FS_NOT_FOUND errors when searching for a YCA of the deleted path and the related path. The related path and revision are bogus for moves committed within other moves/copies. We now treat such moves like we do incoming deletions, instead of erroring out. More work to actually support moves within copies is definitely needed...
Modified: subversion/trunk/subversion/libsvn_client/conflicts.c Modified: subversion/trunk/subversion/libsvn_client/conflicts.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/conflicts.c?rev=1761041&r1=1761040&r2=1761041&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_client/conflicts.c (original) +++ subversion/trunk/subversion/libsvn_client/conflicts.c Fri Sep 16 14:39:33 2016 @@ -678,19 +678,28 @@ find_deleted_rev(void *baton, if (b->related_repos_relpath != NULL && b->related_repos_peg_rev != SVN_INVALID_REVNUM) { - svn_client__pathrev_t *yca_loc; + svn_client__pathrev_t *yca_loc = NULL; + svn_error_t *err; /* We found a deleted node which occupies the correct path. * To be certain that this is the deleted node we're looking for, * we must establish whether it is ancestrally related to the * "related node" specified in our baton. */ - SVN_ERR(find_yca(&yca_loc, - b->related_repos_relpath, - b->related_repos_peg_rev, - b->deleted_repos_relpath, - log_entry->revision - 1, - b->repos_root_url, b->repos_uuid, - b->ctx, iterpool, iterpool)); + err = find_yca(&yca_loc, + b->related_repos_relpath, + b->related_repos_peg_rev, + b->deleted_repos_relpath, + log_entry->revision - 1, + b->repos_root_url, b->repos_uuid, + b->ctx, iterpool, iterpool); + if (err) + { + /* ### Happens for moves within other moves and copies. */ + if (err->apr_err == SVN_ERR_FS_NOT_FOUND) + svn_error_clear(err); + else + return svn_error_trace(err); + } deleted_node_found = (yca_loc != NULL); }