diff --git a/src/it/feature-finish-3-it/expected-pom.xml b/src/it/feature-finish-3-it/expected-pom.xml new file mode 100644 index 00000000..b39a586f --- /dev/null +++ b/src/it/feature-finish-3-it/expected-pom.xml @@ -0,0 +1,7 @@ + + 4.0.0 + com.amashchenko.maven.plugin + gitflow-maven-test + pom + 0.0.4-SNAPSHOT + diff --git a/src/it/feature-finish-3-it/gitignorefile b/src/it/feature-finish-3-it/gitignorefile new file mode 100644 index 00000000..c8d59a83 --- /dev/null +++ b/src/it/feature-finish-3-it/gitignorefile @@ -0,0 +1,5 @@ +build.log +expected-pom.xml +invoker.properties +init.bsh +verify.bsh diff --git a/src/it/feature-finish-3-it/init.bsh b/src/it/feature-finish-3-it/init.bsh new file mode 100644 index 00000000..6cc2b450 --- /dev/null +++ b/src/it/feature-finish-3-it/init.bsh @@ -0,0 +1,28 @@ +try { + new File(basedir, "gitignorefile").renameTo(new File(basedir, ".gitignore")); + + Process p = Runtime.getRuntime().exec("git --git-dir=" + basedir + "/.git --work-tree=" + basedir + " init"); + p.waitFor(); + + Process p = Runtime.getRuntime().exec("git --git-dir=" + basedir + "/.git --work-tree=" + basedir + " config user.email 'a@a.aa'"); + p.waitFor(); + Process p = Runtime.getRuntime().exec("git --git-dir=" + basedir + "/.git --work-tree=" + basedir + " config user.name 'a'"); + p.waitFor(); + + p = Runtime.getRuntime().exec("git --git-dir=" + basedir + "/.git --work-tree=" + basedir + " add ."); + p.waitFor(); + + p = Runtime.getRuntime().exec("git --git-dir=" + basedir + "/.git --work-tree=" + basedir + " commit -m init"); + p.waitFor(); + + p = Runtime.getRuntime().exec("git --git-dir=" + basedir + "/.git --work-tree=" + basedir + " branch feature/ISSUE-288"); + p.waitFor(); + + p = Runtime.getRuntime().exec("git --git-dir=" + basedir + "/.git --work-tree=" + basedir + " checkout -b develop"); + p.waitFor(); + +} catch (Exception e) { + e.printStackTrace(); + return false; +} +return true; diff --git a/src/it/feature-finish-3-it/invoker.properties b/src/it/feature-finish-3-it/invoker.properties new file mode 100644 index 00000000..6c85a73f --- /dev/null +++ b/src/it/feature-finish-3-it/invoker.properties @@ -0,0 +1,3 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:feature-finish -DpushRemote=false -B -DfeatureName=ISSUE-288 -DincrementVersionAtFinish + +invoker.description=Non-interactive feature-finish with incrementVersionAtFinish parameter. diff --git a/src/it/feature-finish-3-it/pom.xml b/src/it/feature-finish-3-it/pom.xml new file mode 100644 index 00000000..e0613c3c --- /dev/null +++ b/src/it/feature-finish-3-it/pom.xml @@ -0,0 +1,7 @@ + + 4.0.0 + com.amashchenko.maven.plugin + gitflow-maven-test + pom + 0.0.3-ISSUE-288-SNAPSHOT + diff --git a/src/it/feature-finish-3-it/verify.bsh b/src/it/feature-finish-3-it/verify.bsh new file mode 100644 index 00000000..c1495067 --- /dev/null +++ b/src/it/feature-finish-3-it/verify.bsh @@ -0,0 +1,27 @@ +import org.codehaus.plexus.util.FileUtils; + +try { + File gitRef = new File(basedir, ".git/refs/heads/feature/ISSUE-288"); + if (gitRef.exists()) { + System.out.println("feature-finish .git/refs/heads/feature/ISSUE-288 exists"); + return false; + } + + File file = new File(basedir, "pom.xml"); + File expectedFile = new File(basedir, "expected-pom.xml"); + + String actual = FileUtils.fileRead(file, "UTF-8"); + String expected = FileUtils.fileRead(expectedFile, "UTF-8"); + + actual = actual.replaceAll("\\r?\\n", ""); + expected = expected.replaceAll("\\r?\\n", ""); + + if (!expected.equals(actual)) { + System.out.println("feature-finish expected: " + expected + " actual was:" + actual); + return false; + } +} catch (Exception e) { + e.printStackTrace(); + return false; +} +return true; diff --git a/src/main/java/com/amashchenko/maven/plugin/gitflow/GitFlowFeatureFinishMojo.java b/src/main/java/com/amashchenko/maven/plugin/gitflow/GitFlowFeatureFinishMojo.java index 5598766a..cf3ea19f 100644 --- a/src/main/java/com/amashchenko/maven/plugin/gitflow/GitFlowFeatureFinishMojo.java +++ b/src/main/java/com/amashchenko/maven/plugin/gitflow/GitFlowFeatureFinishMojo.java @@ -164,8 +164,12 @@ public void execute() throws MojoExecutionException, MojoFailureException { final String featName = featureBranchName.replaceFirst(gitFlowConfig.getFeatureBranchPrefix(), ""); if (incrementVersionAtFinish) { - GitFlowVersionInfo developVersionInfo = new GitFlowVersionInfo(featureVersion); - featureVersion = developVersionInfo.nextSnapshotVersion(); + // prevent incrementing feature name which can hold numbers + String ver = featureVersion.replaceFirst("-" + featName, ""); + GitFlowVersionInfo nextVersionInfo = new GitFlowVersionInfo(ver); + ver = nextVersionInfo.nextSnapshotVersion(); + GitFlowVersionInfo featureVersionInfo = new GitFlowVersionInfo(ver); + featureVersion = featureVersionInfo.featureVersion(featName); mvnSetVersions(featureVersion);