I am merging two branches together, A into B. In A, I deleted a file
and cherrypicked that onto B. Later, I want to merge at the toplevel
from A into B, and I get a segfault when svn tries to figure out how to
resolve the resulting tree conflict (file missing, incoming file deleted).
I have narrowed it down to this line. At first, the string pointed to
by related_repos_relpath is set to null, and related_peg_rev is set to
SVN_INVALID_REVNUM. No matter the exit paths, related_peg_rev will
either be a valid rev, or SVN_INVALID_REVNUM. But, if we can't find a
related node in line 2473, we bail, but related_repos_relpath is set to
null. It seems like there are only two ways that the function will
exit. In successful cases, the related_repos_relpath is updated
appropriately. Otherwise I guess that when the search fails, the
conflict resolution stops and the original value of
related_repos_relpath is unimportant.
I release all rights to this patch, or assign the rights to the project
license as appropriate.
--
Joshua Kordani
Senior Engineer
Robotic Research, LLC
jkord...@roboticresearch.com
CONFIDENTIALITY NOTICE: This communication may contain private, confidential
and privileged material for the sole use of the intended recipient. If you are
not the intended recipient, please delete this e-mail and any attachments
permanently.
Index: subversion/libsvn_client/conflicts.c
===================================================================
--- subversion/libsvn_client/conflicts.c (revision 1875623)
+++ subversion/libsvn_client/conflicts.c (working copy)
@@ -2422,7 +2422,7 @@
svn_node_kind_t related_node_kind;
svn_ra_session_t *ra_session;
- *related_repos_relpath = NULL;
+ /* *related_repos_relpath = NULL; */
*related_peg_rev = SVN_INVALID_REVNUM;
SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,