private P4.P4ClientMerge.MergeStatus MergeCallBackHandler(P4.FileResolveRecord resolveRecord,
                                                                  P4.Client.AutoResolveDelegate AutoResolve, string sourcePath, string targetPath, string basePath, string resultsPath)
        {
            if (ResolveResult == P4.P4ClientMerge.MergeStatus.CMS_EDIT)
            {
                if (resolveRecord.Analysis.ResolveType == P4.ResolveType.Content)
                {
                    while (true)
                    {
                        Scm.MergeFiles(
                            sourcePath, _selectedItem.ResolveRecord.FromFileSpec.ToString(),
                            targetPath, _selectedItem.ResolveRecord.LocalFilePath.ToString(),
                            basePath, _selectedItem.ResolveRecord.BaseFileSpec.ToString(),
                            resultsPath);

                        DialogResult answer = MessageBox.Show(Resources.ResolveFileInteractiveControl_ResolveSaveChanges, Resources.PerforceSCM, MessageBoxButtons.YesNoCancel);

                        if (answer == DialogResult.Cancel)
                        {
                            // user wants to cancel
                            return(P4.P4ClientMerge.MergeStatus.CMS_SKIP);
                        }
                        if (answer == DialogResult.No)
                        {
                            // user wants to try again
                            continue;
                        }
                        // user wants to keep merged file
                        return(P4.P4ClientMerge.MergeStatus.CMS_MERGED);
                    }
                }
            }
            return(ResolveResult);
        }