Source:
<code>public Object execute(ExecutionEvent event) throws ExecutionException { final GitFlowRepository gfRepo = GitFlowHandlerUtil.getRepository(event); if (gfRepo == null) { return error(UIText.Handlers_noGitflowRepositoryFound); } String featureBranch; Repository repo = gfRepo.getRepository(); try { featureBranch = repo.getBranch(); } catch (IOException e) { return error(e.getMessage(), e); } Shell activeShell = HandlerUtil.getActiveShell(event); FinishFeatureDialog dialog = new FinishFeatureDialog(activeShell, featureBranch); if (dialog.open() != Window.OK) { return null; } boolean squash = dialog.isSquash(); boolean <START> keep = <END> dialog.isKeep(); try { try { if (squash && !UIRepositoryUtils.handleUncommittedFiles(repo, activeShell)) return null; } catch (GitAPIException e) { Activator.logError(e.getMessage(), e); return null; } FeatureFinishOperation operation = new FeatureFinishOperation( gfRepo); operation.setSquash(squash); operation.setKeep(keep); String develop = gfRepo.getConfig().getDevelop(); JobUtil.scheduleUserWorkspaceJob(operation, UIText.FeatureFinishHandler_finishingFeature, JobFamilies.GITFLOW_FAMILY); IJobManager jobMan = Job.getJobManager(); jobMan.join(JobFamilies.GITFLOW_FAMILY, null); MergeResult mergeResult = operation.getMergeResult(); if (squash && mergeResult.getMergedCommits().length > 1) { rewordCommitMessage(activeShell, gfRepo); } MergeStatus mergeStatus = mergeResult.getMergeStatus(); if (MergeStatus.CONFLICTING.equals(mergeStatus)) { MultiStatus status = createMergeConflictInfo(develop, featureBranch, mergeResult); ErrorDialog.openError(null, UIText.FeatureFinishHandler_Conflicts, null, status); } } catch (WrongGitFlowStateException | CoreException | IOException | OperationCanceledException | InterruptedException e) { return error(e.getMessage(), e); } return null; }</code><technical_language>keepBranch</technical_language>

Target:
public Object execute(ExecutionEvent event) throws ExecutionException { final GitFlowRepository gfRepo = GitFlowHandlerUtil.getRepository(event); if (gfRepo == null) { return error(UIText.Handlers_noGitflowRepositoryFound); } String featureBranch; Repository repo = gfRepo.getRepository(); try { featureBranch = repo.getBranch(); } catch (IOException e) { return error(e.getMessage(), e); } Shell activeShell = HandlerUtil.getActiveShell(event); FinishFeatureDialog dialog = new FinishFeatureDialog(activeShell, featureBranch); if (dialog.open() != Window.OK) { return null; } boolean squash = dialog.isSquash(); boolean keepBranch = dialog.isKeepBranch(); try { try { if (squash && !UIRepositoryUtils.handleUncommittedFiles(repo, activeShell)) return null; } catch (GitAPIException e) { Activator.logError(e.getMessage(), e); return null; } FeatureFinishOperation operation = new FeatureFinishOperation( gfRepo); operation.setSquash(squash); operation.setKeepBranch(keepBranch); String develop = gfRepo.getConfig().getDevelop(); JobUtil.scheduleUserWorkspaceJob(operation, UIText.FeatureFinishHandler_finishingFeature, JobFamilies.GITFLOW_FAMILY); IJobManager jobMan = Job.getJobManager(); jobMan.join(JobFamilies.GITFLOW_FAMILY, null); MergeResult mergeResult = operation.getMergeResult(); if (squash && mergeResult.getMergedCommits().length > 1) { rewordCommitMessage(activeShell, gfRepo); } MergeStatus mergeStatus = mergeResult.getMergeStatus(); if (MergeStatus.CONFLICTING.equals(mergeStatus)) { MultiStatus status = createMergeConflictInfo(develop, featureBranch, mergeResult); ErrorDialog.openError(null, UIText.FeatureFinishHandler_Conflicts, null, status); } } catch (WrongGitFlowStateException | CoreException | IOException | OperationCanceledException | InterruptedException e) { return error(e.getMessage(), e); } return null; }