svn merge segfaults in the following situation:
1) Start with a vanilla greek tree
2) Copy A to A_COPY in r2
3) Set a property on A/D/G in r3
4) Merge -c3 to A_COPY/D/G
5) Merge -c-3 to A_COPY/D - segfault in
libsvn_subr:svn_string.c:svn_string_compare(). It's worth noting that a merge
-c-3 to A_COPY/D/G works fine.
Looks like the problem is around line 1659 in
libsvn_wc:propc.c:svn_wc__merge_props()
1652 /* We already know that state is at least `changed', so mark
1653 that, but remember that we may later upgrade to `merged' or
1654 even `conflicted'. */
1655 if (is_normal)
1656 set_prop_merge_state(state, svn_wc_notify_state_changed);
1657
1658 if (! from_val) /* adding a new property */
1659 SVN_ERR(apply_single_prop_add(is_normal ? state : NULL,
1660 working_props, &conflict,
1661 propname, base_val, to_val,
1662 conflict_func, conflict_baton, pool));
^^^
from_val is NULL, but so is to_val,
which apply_single_prop_add() doesn't handle
(not that we are adding a prop anyhow!).
1663
1664 else if (! to_val) /* delete an existing property */
1665 SVN_ERR(apply_single_prop_delete(is_normal ? state : NULL,
1666 working_props, &conflict,
1667 propname, base_val, from_val,
1668 conflict_func, conflict_baton, pool));
1669
1670 else /* changing an existing property */
1671 SVN_ERR(apply_single_prop_change(is_normal ? state : NULL,
1672 working_props, &conflict,
1673 propname, base_val, from_val, to_val,
1674 conflict_func, conflict_baton, pool));