public void OnConflict(object sender, SvnConflictEventArgs e) { if (_synchronizer != null && _synchronizer.InvokeRequired) { // If needed marshall the call to the UI thread e.Detach(); // Make this instance thread safe! _synchronizer.Invoke(new EventHandler <SvnConflictEventArgs>(OnConflict), new object[] { sender, e }); return; } AnkhConfig config = GetService <IAnkhConfigurationService>().Instance; if (config.InteractiveMergeOnConflict) { // Only call interactive merge if the user opted in on it if (_currentMergeConflictHandler == null) { _currentMergeConflictHandler = CreateMergeConflictHandler(); } _currentMergeConflictHandler.OnConflict(e); } }
static unsafe IntPtr _svn_wc_conflict_resolver_func( void **resultPtr, IntPtr descriptionPtr, IntPtr baton, IntPtr resultPoolPtr, IntPtr scratchPoolPtr) { var client = AprBaton <SvnClient> .Get(baton); var conflictResult = svn_wc.svn_wc_create_conflict_result( svn_wc_conflict_choice_t.svn_wc_conflict_choose_postpone, null, apr_pool_t.__CreateInstance(resultPoolPtr)); *resultPtr = conflictResult.__Instance.ToPointer(); var resultPool = new AprPool(resultPoolPtr, false); // Connect to parent pool var scratchPool = new AprPool(scratchPoolPtr, false); // Connect to parent pool var description = svn_wc_conflict_description2_t.__CreateInstance(descriptionPtr); var ea = new SvnConflictEventArgs(description, scratchPool); try { client.HandleClientConflict(ea); if (ea.Cancel) { return(svn_error.svn_error_create((int)SvnErrorCode.SVN_ERR_CANCELLED, null, "Operation canceled from OnConflict").__Instance); } conflictResult.choice = (svn_wc_conflict_choice_t)ea.Choice; if (ea.Choice == SvnAccept.Merged) { if (ea.MergedValue != null) { conflictResult.merged_value = resultPool.AllocSvnString(ea.MergedValue); } if (ea.MergedFile != null) { conflictResult.merged_file = resultPool.AllocAbsoluteDirent(ea.MergedFile); } } return(IntPtr.Zero); } catch (Exception e) { return(SvnException.CreateExceptionSvnError("Conflict resolver", e).__Instance); } finally { ea.Detach(false); scratchPool.Dispose(); resultPool.Dispose(); } }
public void OnConflict(object sender, SvnConflictEventArgs e) { if (_synchronizer != null && _synchronizer.InvokeRequired) { // If needed marshall the call to the UI thread e.Detach(); // Make this instance thread safe! _synchronizer.Invoke(new EventHandler <SvnConflictEventArgs>(OnConflict), new object[] { sender, e }); return; } _currentMergeConflictHandler.OnConflict(e); }
public void OnConflict(object sender, SvnConflictEventArgs e) { if (_synchronizer != null && _synchronizer.InvokeRequired) { // If needed marshall the call to the UI thread e.Detach(); // Make this instance thread safe! _synchronizer.Invoke(new EventHandler<SvnConflictEventArgs>(OnConflict), new object[] { sender, e }); return; } AnkhConfig config = GetService<IAnkhConfigurationService>().Instance; if (config.InteractiveMergeOnConflict) { // Only call interactive merge if the user opted in on it if (_currentMergeConflictHandler == null) _currentMergeConflictHandler = CreateMergeConflictHandler(); _currentMergeConflictHandler.OnConflict(e); } }
public void OnConflict(object sender, SvnConflictEventArgs e) { if (_synchronizer != null && _synchronizer.InvokeRequired) { // If needed marshall the call to the UI thread e.Detach(); // Make this instance thread safe! _synchronizer.Invoke(new EventHandler<SvnConflictEventArgs>(OnConflict), new object[] { sender, e }); return; } _currentMergeConflictHandler.OnConflict(e); }