You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gs...@apache.org on 2010/04/09 10:39:18 UTC
svn commit: r932299 - /subversion/trunk/subversion/libsvn_wc/merge.c
Author: gstein
Date: Fri Apr 9 08:39:18 2010
New Revision: 932299
URL: http://svn.apache.org/viewvc?rev=932299&view=rev
Log:
Missed a condition where we needed to flush pending work.
* subversion/libsvn_wc/merge.c:
(maybe_resolve_conflicts): make sure that all control paths flush the
incoming LOG_ACCUM work.
Modified:
subversion/trunk/subversion/libsvn_wc/merge.c
Modified: subversion/trunk/subversion/libsvn_wc/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/merge.c?rev=932299&r1=932298&r2=932299&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/merge.c (original)
+++ subversion/trunk/subversion/libsvn_wc/merge.c Fri Apr 9 08:39:18 2010
@@ -771,6 +771,11 @@ maybe_resolve_conflicts(svn_stringbuf_t
up the conflicts before we mark the file 'conflicted' */
if (!conflict_func)
{
+ /* Since we're not calling the interactive conflict resolve,
+ (and thus subject to exit within an interim/bogus database
+ state), let's flush out all the work items passed to us. */
+ SVN_WC__FLUSH_LOG_ACCUM(db, dir_abspath, *log_accum, pool);
+
/* If there is no interactive conflict resolution then we are effectively
postponing conflict resolution. */
result = svn_wc_create_conflict_result(svn_wc_conflict_choose_postpone,
@@ -813,6 +818,10 @@ maybe_resolve_conflicts(svn_stringbuf_t
pool));
}
+ /* The above logic should have flushed everything: what was given
+ to us, and anything that we may need to accomplish. */
+ SVN_ERR_ASSERT(*log_accum == NULL || svn_stringbuf_isempty(*log_accum));
+
SVN_ERR(eval_conflict_func_result(merge_outcome,
result,
db,