private async Task DoGetLatestOnBranchAsync(Workspace workspaceModel, string sourceBranch, string targetBranch) { var latestVersionForBranches = _configManager.GetValue <Branch>(ConfigKeys.LATEST_VERSION_FOR_BRANCH); if (latestVersionForBranches != Branch.None) { SetCurrentAction(string.Format(CultureInfo.CurrentUICulture, Resources.GettingLatestVersionForBranch, latestVersionForBranches.GetDescription().ToLower())); var branchNamesForLatestVersion = GetBranchesForExecutingGetLatest(latestVersionForBranches, sourceBranch, targetBranch); var hasConflicts = await _mergeService.GetLatestVersionAsync(workspaceModel, branchNamesForLatestVersion.ToArray()); if (hasConflicts) { var shouldResolveConflicts = _configManager.GetValue <bool>(ConfigKeys.SHOULD_RESOLVE_CONFLICTS); if (shouldResolveConflicts) { await _mergeService.ResolveConflictsAsync(workspaceModel); if (_mergeService.HasConflicts(workspaceModel)) { throw new MergeActionException(Resources.GetLatestConflicts); } } else { throw new MergeActionException(Resources.GetLatestConflicts); } } } }