AutoMerge.BranchesViewModel.MergeToBranch C# (CSharp) Метод

MergeToBranch() приватный статический Метод

private static MergeToBranch ( MergeInfoViewModel mergeInfoeViewModel, MergeOption mergeOption, List mergeRelationships, Microsoft.TeamFoundation.VersionControl.Client.Workspace workspace ) : MergeResult
mergeInfoeViewModel MergeInfoViewModel
mergeOption MergeOption
mergeRelationships List
workspace Microsoft.TeamFoundation.VersionControl.Client.Workspace
Результат MergeResult
        private static MergeResult MergeToBranch(MergeInfoViewModel mergeInfoeViewModel, MergeOption mergeOption,
            List<MergeRelation> mergeRelationships, Workspace workspace)
        {
            var source = mergeInfoeViewModel.SourcePath;
            var target = mergeInfoeViewModel.TargetPath;
            var version = mergeInfoeViewModel.ChangesetVersionSpec;

            if (!GetLatest(target, mergeRelationships, workspace))
            {
                return MergeResult.CanNotGetLatest;
            }

            var mergeOptions = ToTfsMergeOptions(mergeOption);
            var status = workspace.Merge(source, target, version, version, LockLevel.None, RecursionType.Full, mergeOptions);
            if (HasConflicts(status))
            {
                var conflicts = AutoResolveConflicts(workspace, target, mergeOption);
                if (!conflicts.IsNullOrEmpty())
                {
                    return IsTryRestoreUnexpectedFile(conflicts)
                        ? MergeResult.UnexpectedFileRestored
                        : MergeResult.HasConflicts;
                }
            }

            return MergeResult.Merged;
        }