Source:
public void execute() throws MojoExecutionException, MojoFailureException { validateConfiguration(); try { initGitFlowConfig(); checkUncommittedChanges(); final String releaseBranch = gitFindBranches( gitFlowConfig.getReleaseBranchPrefix(), true); if (StringUtils.isNotBlank(releaseBranch)) { throw new MojoFailureException( "Release branch already exists. Cannot start release."); } if (fetchRemote) { gitFetchRemoteAndCreate(gitFlowConfig.getDevelopmentBranch()); gitFetchRemoteAndCompare(gitFlowConfig.getDevelopmentBranch()); } final String startPoint; if (StringUtils.isNotBlank(fromCommit) && notSameProdDevName()) { startPoint = fromCommit; } else { startPoint = gitFlowConfig.getDevelopmentBranch(); } gitCheckout(startPoint); if (!allowSnapshots) { checkSnapshotDependencies(); } if (commitDevelopmentVersionAtStart && !notSameProdDevName()) { getLog().warn( "The commitDevelopmentVersionAtStart will not have effect. It can be enabled only when there are separate branches for development and production."); commitDevelopmentVersionAtStart = false; } final String releaseVersion = getReleaseVersion(); String branchName = gitFlowConfig.getReleaseBranchPrefix(); if (!sameBranchName) { branchName += releaseVersion; } if (commitDevelopmentVersionAtStart) { String projectVersion = releaseVersion; if (useSnapshotInRelease && !ArtifactUtils.isSnapshot(projectVersion)) { projectVersion = projectVersion + "-SNAPSHOT"; } commitProjectVersion(projectVersion, commitMessages.getReleaseStartMessage()); gitCreateBranch(branchName, startPoint); final String nextSnapshotVersion = getNextSnapshotVersion(releaseVersion); commitProjectVersion(nextSnapshotVersion, commitMessages.getReleaseFinishMessage()); gitCheckout(branchName); } else { gitCreateAndCheckout(branchName, startPoint); commitProjectVersion(releaseVersion, commitMessages.getReleaseStartMessage()); } if (installProject) { mvnCleanInstall(); } if (pushRemote) { if (commitDevelopmentVersionAtStart) { gitPush(gitFlowConfig.getDevelopmentBranch(), false); } gitPush(branchName, false); } } catch (CommandLineException e) { throw new MojoFailureException("release-start", e); } catch (VersionParseException e) { throw new MojoFailureException("release-start", e); } }

Target:
public void execute() throws MojoExecutionException, MojoFailureException { validateConfiguration(); try { initGitFlowConfig(); checkUncommittedChanges(); final String releaseBranch = gitFindBranches( gitFlowConfig.getReleaseBranchPrefix(), true); if (StringUtils.isNotBlank(releaseBranch)) { throw new MojoFailureException( "Release branch already exists. Cannot start release."); } if (fetchRemote) { gitFetchRemoteAndCreate(gitFlowConfig.getDevelopmentBranch()); gitFetchRemoteAndCompare(gitFlowConfig.getDevelopmentBranch()); } final String startPoint; if (StringUtils.isNotBlank(fromCommit) && notSameProdDevName()) { startPoint = fromCommit; } else { startPoint = gitFlowConfig.getDevelopmentBranch(); } gitCheckout(startPoint); if (!allowSnapshots) { checkSnapshotDependencies(); } if (commitDevelopmentVersionAtStart && !notSameProdDevName()) { getLog().warn( "The commitDevelopmentVersionAtStart will not have effect. It can be enabled only when there are separate branches for development and production."); commitDevelopmentVersionAtStart = false; } final String releaseVersion = getReleaseVersion(); String branchName = gitFlowConfig.getReleaseBranchPrefix(); if (!sameBranchName) { branchName += releaseVersion; } String projectVersion = releaseVersion; if (useSnapshotInRelease && !ArtifactUtils.isSnapshot(projectVersion)) { projectVersion = projectVersion + "-" + Artifact.SNAPSHOT_VERSION; } if (commitDevelopmentVersionAtStart) { commitProjectVersion(projectVersion, commitMessages.getReleaseStartMessage()); gitCreateBranch(branchName, startPoint); final String nextSnapshotVersion = getNextSnapshotVersion(releaseVersion); commitProjectVersion(nextSnapshotVersion, commitMessages.getReleaseFinishMessage()); gitCheckout(branchName); } else { gitCreateAndCheckout(branchName, startPoint); commitProjectVersion(projectVersion, commitMessages.getReleaseStartMessage()); } if (installProject) { mvnCleanInstall(); } if (pushRemote) { if (commitDevelopmentVersionAtStart) { gitPush(gitFlowConfig.getDevelopmentBranch(), false); } gitPush(branchName, false); } } catch (CommandLineException e) { throw new MojoFailureException("release-start", e); } catch (VersionParseException e) { throw new MojoFailureException("release-start", e); } }